注意:python3.x 的print要有括號, python 2.x的不需要
放上學習時寫的例子:
importrem = re.match(r'
(\w+) (\w+)(?p.*)
', '
hello world!')
print("
m.string:
", m.string)
print("
m.re:
", m.re)
print("
m.pos:
", m.pos)
print("
m.endpos:
", m.endpos)
print("
m.lastindex:
", m.lastindex)
print("
m.lastgroup:
", m.lastgroup)
print("
m.group():
", m.group())
print("
m.group(1,2):
", m.group(1,2))
print("
m.groups():
", m.groups())
print("
m.groupdict():
", m.groupdict())
print("
m.start(2):
", m.start(2))
print("
m.span(2):
", m.span(2))
print(r"
m.expand(r'\g \g\g'):
", m.expand(r'
\2 \1\3'))
#search 不一定從第0位開始匹配
pattern = re.compile(r'
world')
match = re.search(pattern, '
hello world!')
ifmatch:
(match.group()) #
split 已pattern分割字串
pattern = re.compile(r'
\d+'
)print(re.split(pattern, '
one1two2three33four4'))
#findall 以列表形式返回全部能匹配的子串
pattern = re.compile(r'
\d+'
)print(re.findall(pattern, '
one1two2three33four4'))
#finditer 返回乙個順序訪問每乙個匹配結果的迭代器
pattern = re.compile(r'
\d+'
)for m in re.finditer(pattern, '
one1two2three3four4'):
(m.group())#替換
pattern = re.compile(r'
(\w+) (\w+)')
s = '
i say, hello world!
'print(re.sub(pattern, r'
\2 \1
', s))
deffunc(m):
return m.group(1).title() + '
' + m.group(2).title()
(re.sub(pattern, func, s))
#subn 比替換多返回了乙個替換次數
print(re.subn(pattern, func, s))
正規表示式 相關
限定符 說明 指定零個或更多個匹配 例如 w 或 abc 等效於。指定乙個或多個匹配 例如 w 或 abc 等效於。指定零個或乙個匹配 例如 w?或 abc 等效於。指定恰好 n 個匹配 例如 pizza 指定至少 n 個匹配 例如 abc 指定至少n 個但不多於m 個匹配。指定盡可能少地使用重複的...
正規表示式相關
我們知道匹配字串通常用正規表示式,因為幾乎每種語言都有自己的正規表示式引擎,所以效率會比你自己寫演算法要高效的多。下面來看下一些常用的正規表示式運算子。注意 這裡主要是個人總結,所以都會以一些自己用到的東西為主,如果要看具體的api,請在網上查詢 基礎知識儲備 稍微注意下一些細節的地方,比如 和 的...
正規表示式相關
table 特殊符號 代表意義 alnum 代表英文大小寫字元及數字,亦即 0 9,a z,a z alpha 代表任何英文大小寫字元,亦即 a z,a z blank 代表空白鍵與 tab 按鍵兩者 cntrl 代表鍵盤上面的控制按鍵,亦即包括 cr,lf,tab,del.等等 digit 代表數...