規則
元字符 | 匹配內容 |
---|---|
. | 匹配除換行符以外的任意字符 |
\w | 匹配字母、數字、下劃線 |
\s | 匹配任意的空白符,相當於[\n\t\r\f] |
\S | 匹配非空字符 |
\d | 匹配數字 |
\D | 匹配非數字 |
\A | 匹配字符串開頭 |
\Z | 匹配字符串結尾,如果存在換行,同時還會匹配換行符 |
\n | 匹配一個換行符 |
\t | 匹配一個製表符 |
\b | 匹配一個單詞的結尾 |
^ | 匹配字符串的開始 |
$ | 匹配字符串的結尾 |
\W | 匹配非字母或數字或下劃線 |
a | b |
() | 匹配括號內的表達式,也表示一個組 |
[…] | 匹配字符組中的字符 |
[^…] | 匹配除了字符組中字符的所有字符 |
量詞 | 用法說明 |
---|---|
* | 匹配0個或多個表達式 |
+ | 匹配1個或多個表達式 |
? | 匹配0個或1個前面的正則表達式定義的片段,非貪婪方式 |
{n} | 精確匹配n個前面的表達式 |
{n,} | 重複n次或更多次 |
{n,m} | 匹配n到m次由前面正則表達式定義的片段,貪婪方式 |
注意
正則表達式是針對每個字符生效的匹配方法,因此在匹配中要對想要匹配的內容按字符依次對正則表達式進行定製。
常用表達式
表達式 | 目的 |
---|---|
\u4e00-\u9fa5 | 匹配所有中文字符 |
\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b | 匹配中文標點符號 |
常用技巧記錄
判斷變量類型是不是列表isinstance(變量名,類型名)
#判斷變量是不是列表
if isinstance(agency_phone,list):
for phone in agency_phone:
intermediate_result2=intermediate_result2+phone
result['agency_phone'] = intermediate_result2
else:
result['agency_phone']=agency_phone
匹配聯繫電話
(\d{7,12}'
r'|\d{0,4}-{0,2}\s{0,4}\d{7,12}'
r'|\d{0,4}-{0,2}\s{0,4}\d{7,12},\d{7,12}'
r'|\d{0,4}-{0,2}\s{0,4}\d{7,12};\d{7,12}'
r'|\d{0,4}—{0,2}\s{0,4}\d{7,12}-{0,2}\s{0,4}\d{0,5}'
r'|\d{0,12}/\s{0,2}\d{0,12}'
r'|\d{0,4}-{0,2}\d{0,8}、\d{0,8})
參考資料
https://www.cnblogs.com/kxllong/p/7307831.html
https://blog.csdn.net/qq_31672701/article/details/100711585