正則表達式

import re

Python語言默認是貪婪的,但其餘語言並不必定是貪婪的 # 想要獲得正則匹配後的值須要用 group()獲取,可是必定要判斷是否取到值,不然會拋異常若是有多個()的話,須要用group(n)來取值 *****
# 在有固定長度的的表達式匹配時,必定要加開始和結尾的標識符 ***** # 全部的量詞都要用在正則規則匹配的後面 ***** # [a-z]\d+ ->a123456889...... # [a-z]+\d+ ->fdaf...1245687665... """   re.I 忽略大小寫   re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依賴於當前環境   re.M 多行模式   re.S 即爲 . 而且包括換行符在內的任意字符(. 不包括換行符)   re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依賴於 Unicode 字符屬性數據庫   re.X 爲了增長可讀性,忽略空格和 # 後面的註釋 """ result = "AB1253C45b67 89a5 \ndsflghjkl" # re.match(r"regular expression ","須要匹配的內容") #從左到右匹配只取第一個至關與 '^'
print(re.match(r".*", result,re.S)) #S 忽略\n
print(re.match(r"[A-z]+", result))
print(re.match(r"[0-9]", result)) # re.findall(r"regular expression","須要匹配的內容") #從頭至尾都匹配只要匹配到,返回一個列表 print(re.findall(r".", result))
print(re.findall(r"[a-z]",result,re.IGNORECASE))
print(re.findall(r"[0-9]",result)) # re.search 掃描整個字符串並返回第一個成功的匹配 # re.search(r"regular expression","須要匹配的內容") #可以匹配包含xxx的字符串 左閉右開下標從0開始
ret = re.search(r"\d+", "閱讀次數爲 9999") #.group()取數據
print(ret)print(re.search(r".+", result))
print(re.search(r"[a-z]+", result))
print(re.search(r"\d+", result)) # re.sub() #將匹配到的數據進行替換 ret = re.sub(r"\d+", '998', "python = 997")
print(ret) # def add(temp):
  count_num = temp.group()

  result = int(count_num) + 1

  return str(result)

ret1 = re.sub(r"\d+", add, "python = 900")
ret2 = re.sub(r"\d+", add, "python = 99")
print(ret1)
print(ret2) # eg: str = """ <div>   <p>崗位職責:</p>   <p>完成推薦算法、數據統計、接口、後臺等服務器端相關工做</p>   <p><br></p>   <p>必備要求:</p>   <p>良好的自我驅動力和職業素養,工做積極主動、結果導向</p>   <p>&nbsp;<br></p>   <p>技術要求:</p>   <p>一、一年以上 Python 開發經驗,掌握面向對象分析和設計,瞭解設計模式</p>   <p>二、掌握HTTP協議,熟悉MVC、MVVM等概念以及相關WEB開發框架</p>   <p>三、掌握關係數據庫開發設計,掌握 SQL,熟練使用 MySQL/PostgreSQL 中的一種<br></p>   <p>四、掌握NoSQL、MQ,熟練使用對應技術解決方案</p>   <p>五、熟悉 Javascript/CSS/HTML5,JQuery、React、Vue.js</p>   <p>&nbsp;<br></p>   <p>加分項:</p>   <p>大數據,數理統計,機器學習,sklearn,高性能,大併發。</p> </div> """ #data = re.sub(r"<[^>]*>|&nbsp;|\n",'',str)
data = re.sub(r"<[^>]+>|&nbsp;|\n","",str)
print(data) # re.split() #根據匹配進行切割字符串,並返回一個列表
ret = re.split(r":| ","info:xiaoZhang 33 shandong")
print(ret) # "."能匹配'\n'之外的全部字符 str1 = "a12345 6879.\nb" print(re.match(r"^.*", str1)) # "\d" digit 匹配數字 print(re.match(r"^\d", "12ad34")) # "w" word 能匹配單詞字符和漢字 print(re.match(r"^\w", "一塊兒去看看")) # "s" space 匹配任意的空白符 print(re.match(r"^\s*", " -b 12")) # "D" 匹配非數字 # "W" 能匹配非單詞字符 # "S" 匹配非任意的空白符 # "\n" 匹配換行符 # "\t" 匹配製表符 # "\b" 匹配單詞的結尾 # "^" 匹配開頭 ->startwith 和"$"匹配結尾 ->endwith # "a|b" 或匹配 print(re.match(r"(db|abc)*", "abcdb")) # "()" 匹配括號內的表達式,俗稱分組,須要對一個字符串進行總體討論時,通常用分組 # "[ ]" 一個字符組只能匹配一個位置 # [^a-z] 除a-z的都匹配 # 量詞 --> 座標軸記憶法 # "*" 匹配0次或屢次 貪婪匹配 # "+" 匹配1次或屢次 貪婪匹配 # "?" 匹配0次或1次 非貪婪匹配 "^[0~9]{14}(\d{2}[0-9x])$" # "{n}" 重複n次 # "{n,}" 重複n次到無窮大 # "{m,n}" 重複m到n次(個)


#匹配標識符
import re
# 注意需求 一字一字看,認真看
# 匹配標識符
def main():
    all_str = ["args", "kwargs", "__nest__", "enumerate#%&", "yield1", "#12", "apply_async", "join", "join&", "1iter"]
    for str in all_str:
        # result = re.match(r"^[A-z_][A-z0-9_]*", str)
        result = re.match(r"^[A-z_][A-z0-9_]*$", str)
        if result:
            print("該變量%s符合變量的命名規則,經過正則匹配出來的結果是%s" % (str, result.group()))
        else:
            print("該變量%s不符合變量的命名規則" % (str))


if __name__ == '__main__':
    main()
View Code
 
 

#簡單匹配163郵箱python

  #萬能匹配郵箱正則表達式git

    /^[a-z0-9][\w\.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$/;正則表達式

# 匹配郵箱
def main():
    content_email = input("請輸入郵箱帳號:")
    ret = re.match(r"^[A-z0-9_]+@163\.com",content_email)
    if ret:
        print("這個郵箱帳號%s符合當前需求",content_email)
    else:
        print("這個郵箱帳號%s不符合咱們的需求",content_email)

if __name__ == '__main__':
    main()
View Code

#匹配手機號算法

# 總長11位,首號必須爲1,尾號不能是4/7
# 匹配手機號
def main():
    result = input("請輸入一個手機號:")
    # ret = re.match(r"^[1]\d{9}[0-35689]$", result)
    # ret = re.match(r"^[1]\d{9}[^4]|[^7]$",result)
    # ret = re.match(r"^[1]\d{9}[^4]$|^[1]\d{9}[^7]$",result)
    # ret = re.match(r"^1[0123456789]{9}[0-35689]$", resrult)
    ret = re.match(r"^[1]\d{9}([^4]|[^7])$", result)
    if ret:
        print("該手機號%s符合要求", result)
    else:
        print("該手機號%s不符合要求", result)


if __name__ == '__main__':
    main(
View Code
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息