python re模組,pythonre
一、單字元匹配
| 字元 |
功能 |
| . |
匹配任意1個字元(除了\n) |
| [ ] |
匹配[ ]中列舉的字元 |
| \d |
匹配數字,即0-9 |
| \D |
匹配非數字,即不是數字 |
| \s |
匹配空白,即 空格,tab鍵,\n |
| \S |
匹配非空白 |
| \w |
匹配單詞字元,即a-z、A-Z、0-9、_ |
| \W |
匹配非單詞字元 |
二、表示數量
| 字元 |
功能 |
| * |
匹配前一個字元出現0次或者無限次,即可有可無 |
| + |
匹配前一個字元出現1次或者無限次,即至少有1次 |
| ? |
匹配前一個字元出現1次或者0次,即要麼有1次,要麼沒有 |
| {m} |
匹配前一個字元出現m次 |
| {m,} |
匹配前一個字元至少出現m次 |
| {m,n} |
匹配前一個字元出現從m到n次 |
三、表示邊界
| 字元 |
功能 |
| ^ |
匹配字串開頭 |
| $ |
匹配字串結尾 |
| \b |
匹配一個單詞的邊界 |
| \B |
匹配非單詞邊界 |
四、分組
| 字元 |
功能 |
| | |
匹配左右任意一個運算式 |
| (ab) |
將括弧中字元作為一個分組 |
\num |
引用分組num匹配到的字串 |
(?P<name>) |
分組起別名 |
| (?P=name) |
引用別名為name分組匹配到的字串 |
五、標誌
| 修飾符 |
描述 |
| re.I |
使匹配對大小寫不敏感 |
| re.L |
做本地化識別(locale-aware)匹配 |
| re.M |
多行匹配,影響 ^ 和 $ |
| re.S |
使 . 匹配包括換行在內的所有字元 |
| re.U |
根據Unicode字元集解析字元。這個標誌影響 \w, \W, \b, \B. |
| re.X |
該標誌通過給予你更靈活的格式以便你將Regex寫得更易於理解。 |
六、match方法
match(pattern, string, flags=0) Try to apply the pattern at the start of the string, returning 從字串頭開始匹配 a match object, or None if no match was found.
| 參數 |
描述 |
| pattern |
匹配的Regex |
| string |
要匹配的字串。 |
| flags |
標誌位,用於控制Regex的匹配方式,如:是否區分大小寫,多行匹配等等 |
1 import re 2 3 ret = re.match('com', 'www.baidu.com') 4 print(ret) # None 5 6 ret = re.match('(w)(w)(w)', 'www.baidu.com') 7 print(type(ret)) # <class '_sre.SRE_Match'> 8 9 '''10 得到的是Match對象11 屬性:12 string: 匹配時使用的文本。13 re: 匹配時使用的Pattern對象。14 pos: 文本中Regex開始搜尋的索引。值與Pattern.match()和Pattern.seach()方法的同名參數相同。15 endpos: 文本中Regex結束搜尋的索引。值與Pattern.match()和Pattern.seach()方法的同名參數相同。16 lastindex: 最後一個被捕獲的分組在文本中的索引。如果沒有被捕獲的分組,將為None。17 lastgroup: 最後一個被捕獲的分組的別名。如果這個分組沒有別名或者沒有被捕獲的分組,將為None。18 方法:19 group([group1, …]):20 獲得一個或多個分組截獲的字串;指定多個參數時將以元組形式返回。group1可以使用編號也可以使用別名;編號0代表整個匹配的子串;不填寫參數時,返回group(0);沒有截獲字串的組返回None;截獲了多次的組返回最後一次截獲的子串。21 groups([default]): 22 以元組形式返回全部分組截獲的字串。相當於調用group(1,2,…last)。default表示沒有截獲字串的組以這個值替代,預設為None。23 groupdict([default]):24 返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒有別名的組不包含在內。default含義同上。25 start([group]): 26 返回指定的組截獲的子串在string中的起始索引(子串第一個字元的索引)。group預設值為0。27 end([group]):28 返回指定的組截獲的子串在string中的結束索引(子串最後一個字元的索引+1)。group預設值為0。29 span([group]):30 返回(start(group), end(group))。31 expand(template): 32 將匹配到的分組代入template中然後返回。template中可以使用\id或\g<id>、\g<name>引用分組,但不能使用編號0。\id與\g<id>是等價的;但\10將被認為是第10個分組,如果你想表達\1之後是字元'0',只能使用\g<1>0。33 '''34 35 print(ret.lastgroup) # None36 print(ret.lastindex) # 337 print(ret.pos) # 038 print(ret.endpos) # 1339 print(ret.re) # re.compile('(w)(w)(w)')40 print(ret.regs) # ((0, 3), (0, 1), (1, 2), (2, 3))41 print(ret.string) # www.baidu.com42 43 print(ret.start()) # 044 print(ret.end()) # 345 print(ret.span()) # (0, 3)46 print(ret.group()) # www47 print(ret.groups()) # ('w', 'w', 'w')48 print(ret.groupdict()) # {}49 print(ret.expand(r'\1-\2-\3')) # w-w-w
七、search方法