python正規表示式入門一

2021-09-27 01:27:42 字數 2221 閱讀 2936

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 開頭。...