import re
^
.
就是乙個英文的句號
*
示例
line = "tpr123"
regex_str = "^t.*"
if re.match(regex_str, line):
print("匹配成功")
結果
d:\pythonworkspace\regexp\venv\scripts\python.exe d:/pythonworkspace/regexp/test/test.py
匹配成功
$
示例
line = "tpr123"
regex_str = "^t.*3$"
if re.match(regex_str, line):
print("匹配成功")
結果
d:\pythonworkspace\regexp\venv\scripts\python.exe d:/pythonworkspace/regexp/test/test.py
匹配成功
示例
line = "tpr123"
regex_str = "^t.*4$"
if re.match(regex_str, line):
print("匹配成功")
無結果
?
示例:有乙個字串」line = 「tpyyyyyyyppr123」 把 pyyyyyyyp取來出。使用正規表示式的方式。
錯誤示例:
line = "tpyyyyyyyppr123"
regex_str = ".*(p.*p).*"
match_result = re.match(regex_str, line)
if match_result:
print(match_result.group(1))
執行結果
d:\pythonworkspace\regexp\venv\scripts\python.exe d:/pythonworkspace/regexp/test/test.py
pp
原因: 正規表示式在匹配的時候是貪婪匹配的,是從字串的右邊開始對比字串是否符合正規表示式。 因此取出來的就是pp。下面我們要做的就是讓他從左右取出來。
示例 :
import re
line = "tpyyyyyyyppr123"
regex_str = ".*?(p.*p).*"
match_result = re.match(regex_str, line)
if match_result:
print(match_result.group(1))
執行結果
d:\pythonworkspace\regexp\venv\scripts\python.exe d:/pythonworkspace/regexp/test/test.py
pyyyyyyypp
結果還是不符合要求,他把結尾的兩個p都取出來了。 是因為.*p
這個正則也是符合yyyypp的。如果有三個p 也都會匹配出來。
示例
import re
line = "tpyyyyyyypppr123"
regex_str = ".*?(p.*?p).*"
match_result = re.match(regex_str, line)
if match_result:
print(match_result.group(1))
執行結果
d:\pythonworkspace\regexp\venv\scripts\python.exe d:/pythonworkspace/regexp/test/test.py
pyyyyyyyp
這樣結果就符合我們的要求了。
? 的非貪婪模式不只是能把匹配從右開始,還能把當匹配到第乙個符合要求的值匹配出來。 就不會在接著匹配了。
入門 python正規表示式
我是菜鳥,只適合新手參考 啊哈,第一次寫部落格就要寫我剛接觸的東西,所以接下來的內容多為摘錄 抄襲 這篇博文主要是鞏固我的學習,時間緊迫,讓我們開始吧!小夥伴們,首先看什麼是正規表示式呢?少說廢話了 正規表示式是乙個特殊的字串行,它用來幫助我們高效地檢查乙個字串是否與某種模式匹配,re 模組使pyt...
正規表示式入門(一)
正規表示式又稱為正規表示法 常規表示法,它是乙個描述字元模式的物件,由一些特殊符號組成,其組成的字元模式用來匹配各種表示式。regexp 物件表示正規表示式,是對字串執行模式匹配的強大工具。var str is this is regexp pattern attributes is g 全域性查詢...
正規表示式 正則入門
先從乙個例子開始正規表示式。書寫乙個匹配手機號的正規表示式,為了方便討論,假定手機號是1開頭,第二位只能是3 5 8中的其中乙個,總共11位的數字,形如13 匹配手機號的正規表示式為 1 358 d 下面介紹此正規表示式中的各個符號的含義。表示字串的開頭,後面緊接著1,表示匹配的字串要以 1 開頭。...