正規表示式的庫在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 其前乙個字元必須在目標物件中連續出現零次或多次 其前乙個字元必須在目標物件中連續出現一次或多次 其前乙...