python正規表示式

2022-07-15 03:00:12 字數 1380 閱讀 7420

以前用php做資料採集,做了有小半年,所以對php的正則用法還是很熟悉,轉用python後,流程還是差不多,只是python的相關函式用法和php不一樣。

php正則匹配函式倒是很簡單,preg_match,preg_match_all,preg_replace, 直接就可以拿來用了,是否使用貪婪模式,是否區分大小寫直接在正規表示式裡指明。

再來看看python

importre#

匹配開頭結尾

str="

efg fwef safeasafsdf kkk

"reg=r"

fg(.+)kkk

"# 要把正規表示式編譯一下, 其實不編譯也行, 直接 re.match(正規表示式,要匹配的物件)就能實現,

# 但是為什麼要編譯(cmopile)呢?因為如果很多地方用到這個匹配的話,可以提高效率

pat=re.compile(reg)

# match 這裡有個特點那就是他是從開頭開始匹配,相當於預設在匹配式開頭加了 ^ ,這裡匹配式相當於 ^fg(.+)kkk

m=pat.match(str) #沒有結果

ifm:

print

m.group()

# search和match類似,但是他並不會從開頭開始

m=pat.search(str)

#有結果

ifm:

print

m.group()

# match和search 可以用在驗證字元資料的地方(例如驗證郵箱,**等) 或 無需得到括號裡匹配內容的結果裡。

# findall可以以元組的形式匹配返回匹配內容

# 如果返回的結果有中文,要進一步遍歷之後才能正確顯示中文

str="

efg fwef safeasafsdf kkk efg hello 你好啊 kkkefg 我很好 kkk efg 卡卡

"reg=r"

fg(.+?)kkk

"pat=re.compile(reg,re.i|re.s)

m=pat.findall(str)

printm#

匹配是個有效郵箱

email='

[email protected]

'# \w 表示數字字母和下滑線,也叫字元型,後面的re.i 表示忽略大小寫,re.s 表示.代表任意字元(這裡不用加,只是做示範)

pat=re.compile(r'

^[\w|\+]+@[\w|\.]+$

',re.i|re.s)

m=pat.search(email)

ifm:

print

'this is a email

'print

m.group()

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...