python re模組,pythonre

來源:互聯網
上載者:User

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方法

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.