python之正規表示式系列一 元字元

2021-09-24 21:55:53 字數 3398 閱讀 6513

正規表示式的庫在re庫里。

re.findall('string ',string s)匹配字串,當s中有前面字串的內容,就返回乙個列表,列表包含前面的字串。

import re

s='hello world'

r=re.findall('hello',s)

print(r)

import re

s='test123\n'

r=re.findall('.',s)

print(r)

結果

如果想拿到『\n\r』的話,要在findall後面加修飾符『re.s

s='test123\n'

r=re.findall('.',s,re.s)//注意加了re.s

如果實現多行匹配的話,需要在findall後面加修飾符『re.m

s='test123\ntest123\ntest'		//注意這裡有兩個換行,實際上是三行字串

如果想不區分大小寫的話也需要加修飾符『re.i』,同時又想多行匹配,所以需要在兩個修飾符之間加『|』分隔開。

s='testing\ntest\ntest'

r=re.findall('^test',s,re.m | re.i)

print(r)

s='testing\ntest\ntest'

r=re.findall('testing$',s)

print(r)

很明顯會返回空列表,因為字串以『test』結尾。

如果想實現多行匹配,即將有\n的字串看成多個字串的話,需要加修飾符re.m

s='testing\ntest\ntest'

r=re.findall('testing$',s,re.m)

print(r)

s='z\nzo\nzoo'

r=re.findall('zo*',s,re.m) //注意多行匹配

print(r)

這個**表示,z開頭,緊接著o,但是o出現的次數是任意的,符合這樣的標準才會返回到列表裡。

『+』的例子

s='z\nzo\nzoo'

r=re.findall('zo+',s,re.m)

print(r)

『?』的例子

s='z\nzo\nzoo'

r=re.findall('zo?',s,re.m)

print(r)

注意這裡第三個zoo其實也滿足要求,但是只會取zo,因為第二個o不滿足要求。

這裡舉個對比的例子

s='z\nzo\nzoo'

r=re.findall('zoo?',s,re.m) //注意這裡是zoo?

print(r)

s='z\nzo\nzoo'

r=re.findall('zo',s,re.m) #與re.findall('zo*',s,re.m)一樣

print(r)

r=re.findall('zo',s,re.m) #與re.findall('zo+',s,re.m)一樣

print(r)

r=re.findall('zo',s,re.m) #與re.findall('zo?',s,re.m)一樣

print(r)

r=re.findall('zo',s,re.m)

print(r)

注意{}裡面沒有空格!

不管[z|f]了,只管後面的(o*)

s=r'z\nzood\nfood'						//字串轉義

r=re.findall('[z|f](o\*)',s,re.m) //正則語法轉義

正規表示式系列

首先需要引用 using system.text.regularexpressions 數字正規表示式 private static regex regnumber new regex 0 9 數字可帶正負號 private static regex regnumbersign new regex ...

Python之正規表示式

正規表示式正規表示式主要用來匹配字串,例如 判斷乙個字串是否是乙個合法的 思想是用描述性的語言給字串乙個規則。re模組中的match函式提供了這種功能,若匹配成功則返回匹配物件,否則返回none。一 語法 d 表示匹配數字 w 表示匹配字母或數字 可以匹配任意字元 s可以匹配乙個空格或者tab 特殊...

Python之正規表示式

正規表示式元字元如下 匹配除換行符以外的所以字元 規定匹配模式必須出現在目標字串的開頭,例如 hell hello hellboy 規定匹配模式必須出現在目標字串的結尾,例如 ar car bar 其前乙個字元必須在目標物件中連續出現零次或多次 其前乙個字元必須在目標物件中連續出現一次或多次 其前乙...