日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python之正则(一)

發布時間:2023/12/13 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python之正则(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.常用正則表達式:

\d:數字[0-9] ,實例:a\dc -> a1c
\D:非數字[^\d],實例:a\Dc -> abc
\s:空白字符[<空格>\t\r\n\f\v] 實例:a\sc ->a c
\S:非空白字符[^\s] 實例:a\Sc ->abc
\w:單詞字符[A-Za-z0-9_] 實例:a\wc ->abc
\W:非單詞字符[^\W]

*:匹配前一個字符0或無限次; abc* -> ab或abc或abcc
+:匹配前一個字符1次或無限次 abc+ -> abc或abcc
?:匹配前一個字符0次或1次 abc? -> ab或者abc

{m}:匹配前一個字符m次 ab[2]c -> abbc


^:匹配字符串開頭,在多行模式中匹配每一行的開頭;
$:匹配字符串結尾,在多行模式中匹配每一行的結尾;
\A:僅匹配字符串開頭
\Z:僅匹配字符串結尾
\b:匹配\w和\W之間;
\B:{^\b}


以什么結尾:一般這樣寫(abc)$


|:它總是先嘗試匹配左邊的表達式,一旦成功則跳過匹配右邊的表達式;

(...):被括起來的表達式將作為分組,從表達式左邊開始每遇到一個分組的
左括號'(',編號+1
另外,分組表達式作為一個整體,可以后接數量詞,表達式中的|僅在
該組中有效;

例如:(abc){2} -> abcabc
a(123|456)c -> a456c

(?P<name>...):分組,除了原有的編號外再指定一個額外的別名;
(?P<id>abc){2} -> abcabc
\<number> :引用編號為<number>的分組匹配到的字符串.
(\d)abc\1 -> 1abc1或者5abc5
(?P=name):引用別名為<name>的分組匹配到的字符串.
(?P<id>\d)abc(?P=id) -> 1abc1或者5abc5

分組:(?P<name>...)省略的部分就是正常的正則匹配,我們把
匹配到的這個整體給賦一個變量名字name,在后續調用的時候,
分組表達式的寫法:(abc)edcrfv.*(wsx).*\1

2.編譯正則表達式

r表示raw的簡及raw string 意思是原生字符,也就是說這個字符串中間的特殊字符不用轉義;

比如你要表示'\n',可以這樣:r'\n'

但是,如果你不用原生字符,而是用字符串你得這樣:'\\n'

shell 中:grep -E或egrep


re.compile(pattern[,flags])
這個方法就是將字符串的正則表達式編譯成正則對象,第二個參數flag是匹配
模式,取值可以使用按位或者運算符"|"表示同時生效,比如re.l | re.M,
flag的可選值有:
re.l(re.lGNORECASE):忽略大小寫(括號內是完整寫法,下同)
M(MULTILINE):多行模式,改變'^'和'$'的行為;
S(DOTALL):點任意匹配模式,改變'.'的行為;
L(LOCALE):使預定義字符類\w \W \b \B \s \S取決于當前區域設定;
U(UNICODE):使預定義字符類\w \W \b \B \s \S \d \D 取決于unicode定義的字符屬性.
X(VERBOSE):詳細模式。這個模式下正則表達式可以是多行,忽略空白符,并
可以加入注釋。以下兩個正則表達式是等價的:
a = re.compile(r"""\d+ #the integralpart
\. #the decimal point
\d * # some fractional digits""",re.X)
b = re.compile(r"\d+\.\d")

1.正則匹配是,優先編譯成正則對象,然后再進行匹配,

3.re正則對象和正則匹配效率比較

re模塊是python中處理正則表達式的一個模塊,通過re模塊的方法,把正則表達式pattern
編譯成正則對象,以便使用正則對象的方法.那為什么要使用re模塊來把正則表達式
搞成正則對象呢,最主要的是可以提高代碼的執行效率,正則對象比正則匹配快好多;

轉載于:https://www.cnblogs.com/awenxianliao/p/7837178.html

總結

以上是生活随笔為你收集整理的python之正则(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。