Python 正規表示式

2021-10-02 15:07:07 字數 2398 閱讀 8344

python 正規表示式

速查

import sys

import re

reload

(sys)

sys.setdefaultencoding(

'utf-8'

)

匹配次數

.         匹配任意字元一次

* 匹配前面的表示式0

/n次+ 匹配前面的表示式1

/n次? 匹配前面的表示式0/1次

匹配前面的表示式m次

匹配前面的表示式m到n次

*? 匹配前面的表示式0次

+? 匹配前面的表示式1次

常用語法

re.s    匹配所有的字元

re.i 匹配大小寫

re.m 多行匹配

re.match從頭開始匹配

re.search全文匹配

\d 匹配所有的數字

\d 匹配所有的非數字

\s 匹配所有的文字

\s 匹配所有的非文字

字元集合,匹配裡面的所有表示式,使用|分開

建立正規表示式物件

compile

(pattern[

, flags]

)

#根據包含正規表示式的字串建立模式物件

全文查詢符合表示式的物件

search(pattern, string[

, flags]

)#在字串中查詢,只查詢乙個

從頭開始查詢符合表示式的物件

match(pattern, string[

, flags]

)#在字串的開始處匹配模式

分割字串

split(pattern, string[

, maxsplit=

0,flags]

)#根據模式的匹配項來分割字串

尋找所有符合表示式的物件

findall(pattern, string,flags)

#列出字串中模式的所有匹配項

return 陣列

替換字串

sub(pat,repl, string[

,count=

0,flags]

)#將字串中所有的pat的匹配項用repl替換

注意表示字

符串的結

尾,所以

加上

表示字串的結尾,所以加上

表示字串的

結尾,所

以加上表示匹配的內容必須在字串的結尾

匹配整個字串還要加上字串開始標記^

注意寫爬出的時候可以用正規表示式匹配多個物件,然後遍歷的時候使用yield生成器,可以組合成字典的形式,然後把字典給json.dumps()轉換成json的格式,最後儲存在本地文字中。

漢字:[\u4e00-\u9fa5]

英文和數字:[a-za-z0-9]

+長度為3

-20的所有字元:.([

-+.]\w+

)@\w+([

-.]\w+

).\w+([

-.]\w+)*

網域名稱:[a-za-z0-9]

[-a-za-z0-9]

(/.[a-za-z0-9]

[-a-za-z0-9]

)+/.?

interneturl:[a-za-z]+:

//[^\s] 或 ^http://(

[\w-]+

.)+[\w-]+

(/[\w-

./?%&=

])?$

手機號碼:^(13

[0-9

]|14[

5|7]

|15[0

|1|2

|3|5

|6|7

|8|9

]|18[

0|1|

2|3|

5|6|

7|8|

9])\d$

國內**號碼:\d

-\d|\d

-\d(

0511

-4405222、021

-87888822

)日期格式:^\d

-\d-\d

空白行的正規表示式:\n\s*\r (可以用來刪除空白行)1-

9][0

-9].\d+

.\d+

.\d+

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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...