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