^b代表字串必須以b開頭
3$代表必須以3結尾
.代表任意字元
*代表前面字元可以重複任意多次
1+代表1至少出現一次
(w.w)w與w中間的字元出現2次
最少3次
最少3次,最多6次
import re
line =
"wuwei123"
regex_str =
"^w.*3$"
if re.
match
(regex_str, line)
: print (
"yes"
)>>> yes
//假設我們希望提取"wuuuuuuuuuuuuuw"字串
import re
line =
"wuuuuuuuuuuuuuwwei123"
regex_str =
".*(w.*w).*"
match_obj = re.
match
(regex_str, line)
if match_obj:
print (match_obj.
group(1
))>>> ww
//原因:反向匹配
用?變為非貪婪模式匹配,從左邊開始匹配
regex_str =
".*?(w.*w).*"
>>> wuuuuuuuuuuuuuww
regex_str =
".*?(w.*?w).*"
>>> wuuuuuuuuuuuuuw
[ ] 滿足中括號內任意乙個字元都能匹配
[^1] 不等於1
[0-9] 0-9任意乙個
.*在[ ]中沒有特殊含義
\s 為空格
\s 不為空格
\w 相當於[a-za-z0-9_]
\w 與\w相反
[\u4e00-\u9fa5] 漢字
例1:
line =
"study in 電子科技大學"
regex_str =
".*([\u4e00-\u9fa5]+大學)"
match_obj = re.
match
(regex_str, line)
if match_obj:
print (match_obj.
group(1
))>>> 技大學
// 貪婪匹配
line =
"study in 電子科技大學"
regex_str =
".*?([\u4e00-\u9fa5]+大學)"
match_obj = re.
match
(regex_str, line)
if match_obj:
print (match_obj.
group(1
))>>> 電子科技大學
例2:
line =
"***x出生於2023年"
regex_str =
".*?(\d+)年"
//regex_str = ".*?(\d)年"
match_obj = re.
match
(regex_str, line)
if match_obj:
print (match_obj.
group(1
))>>>
9102
例3:
line =
"***x出生於2023年6月1日"
#line =
"***x出生於2001/6/1"
#line =
"***x出生於2001-6-1"
#line =
"***x出生於2001-06-01"
#line =
"***x出生於2001-06"
regex_str =
".*?(\d+)年"
//regex_str = ".*出生於(\d[年/-]\d([月/-]\d|[月/-]$|$))"
match_obj = re.
match
(regex_str, line)
if match_obj:
print (match_obj.
group(1
))>>>
9102
正規表示式學習筆記
正規表示式學習日記 1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫...
正規表示式學習筆記
字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
正規表示式學習筆記
1.正規表示式是可用於在乙個檔案或字元裡查詢和替代文字的一種標準。它具有兩種標準 基本的正規表示式 bre 擴充套件的正規表示式 ere ere包括bre功能和另外其它的概念。2.表示或運算 3.匹配任何單個字元 4.匹配任何中包含的單個字元,如 張王李 三,匹配張 三 王三,李三 5.將排除 後跟...