正規表示式中多行匹配問題

2021-07-11 08:34:29 字數 814 閱讀 8407

今天在csdn問答上看到乙個這樣的問題。

**如下

$str= 'abc

defijk' ;

preg_match('/f$/m',$str,$arr);

var_dump($arr);

我們都知道m 此模式中如果有回車或換行,^$將匹配每行的行首和行尾 ,既然這樣,那應該能匹配到第二行。但是$arr結果為空?這是為什麼呢?

因為f後面有乙個回車符。

$str= 'abc

defijk' ;

preg_match('/f\r$/m',$str,$arr);

測試正常,返回了希望的值。

下面補充一下正則的一些基礎知識。

\f 匹配換頁符

\n 匹配換行符

\r 匹配回車符

\t 匹配製表符

\v 匹配垂直製表符

模式修正符

i 不區分大小寫

m 此模式中如果有回車或換行,^$將匹配每行的行首和行尾

s 讓.能匹配\n

x 忽略空白

u 取消貪婪,相當於(.*?)

a 與^效果一樣

d 結尾處不忽略回車 ,在結束處有符的

時候,在

匹配的字

符串後面

加上回車

, 依然能夠匹配它成功。但是加上d之後,結尾的回車,不再匹配

re正規表示式匹配多行文字

今天在寫乙個簡單爬蟲,最後的文字提取部分,卻一直提不出想要的部分。文字格式是這樣的 rich content topic richtext left 文字文字文字 p div 離文字最近的不固定,只能用上面的來匹配,但是用我僅知道的re的一點皮毛re.findall text 發現,一直匹配不到 查...

正規表示式 匹配

字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...

正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 解法 首先要想到用遞迴處理...