2 回答

TA貢獻1860條經(jīng)驗 獲得超9個贊
Python正則表達式中re.M的意思是:多行匹配,影響 ^ 和 $。
正則表達式可以包含一些可選標志修飾符來控制匹配的模式。修飾符被指定為一個可選的標志。多個標志可以通過按位 OR(|) 它們來指定。如 re.I | re.M 被設置成 I 和 M 標志:
re.I:使匹配對大小寫不敏感。
re.L:做本地化識別(locale-aware)匹配。
re.S:使 . 匹配包括換行在內(nèi)的所有字符。
re.U:根據(jù)Unicode字符集解析字符。這個標志影響 \w, \W, \b, \B。
re.X:該標志通過給予你更靈活的格式以便你將正則表達式寫得更易于理解。
擴展資料
正則表達式的模式有I、L、M、S、X、U六種模式:
1、I (IGNORECASE) , 忽略大小寫的匹配模式。
2、L (LOCALE),字符集本地化。
使預定字符類 \w \W \b \B \s \S 取決于當前區(qū)域設定,比如在轉(zhuǎn)義符\w,在英文環(huán)境下,它代表[a-zA-Z0-9_],即所以英文字符和數(shù)字。如果在一個法語環(huán)境下使用,缺省設置下,不能匹配"é" 或 ""。加上這L選項和就可以匹配了,不常用。
3、M (MULTILINE),多行模式。
改變 ^ 和 $ 的行為,^匹配開始位置,這種模式下匹配每一行的開始,$匹配結(jié)束位置,這種模式下匹配每一行的結(jié)束。
4、S (DOTALL),點任意匹配模式。
此模式下.可匹配任何字符,包括換行符。
5、X (VERBOSE),冗余模式。
這個模式下正則表達式可以是多行,忽略空白字符,并可以加入注釋,方便理解。
6、U (UNICODE),unicode定義模式。
使預定字符類 \w \W \b \B \s \S \d \D 取決于unicode定義的字符屬性。

TA貢獻1874條經(jīng)驗 獲得超12個贊
正則表達式中的re.M表示將字符串視為多行,從而^匹配每一行的行首,$匹配每一行的行尾
我給你個Python語言的例子,你看看吧
這個程序是匹配冒號加一個空格后的數(shù)字串,中間有換行符\n所以用多行匹配re.M
12345678910111213141516 | #!/usr/bin/python3 import re line = "IF_MIB::=Counter32: 12345\nIF_MIB::=Counter32: 1234556" ; result = re.findall( r '(?<=\:\s)\d+$' , line, re.M) if result: print (result) else : print ( "Nothing found!!" ) 運行結(jié)果 [ '12345' , '1234556' ] |
添加回答
舉報