2016-03-03 56 views
1
$subject = "SIverygood \n SIverygood\n"; 
$pattern = '/^SI/m'; 

preg_match_all($pattern, $subject, $matches2,PREG_OFFSET_CAPTURE); 
var_dump($matches2); 

我無法理解小號修改。我想在每一個換行符的開頭都得到SI。我爲了練習目的去理解m和s修飾符。 以上示例僅返回SI。但我想要兩個。米正則表達式修飾符

回答

2

m是一個多行修飾符,它將使起始錨點匹配每行的開始而不是整個字符串。並且在第一行開始處的字符串中,您有SI並返回它,但在第二行中,行的開頭是空間而不是SI

如果要忽略空格在你行的領導,你可以使用正則表達式如下:

$pattern = '/^\s*(SI)/m'; 

並獲得第一組相匹配的結果。閱讀關於修飾符的更多信息http://www.regular-expressions.info/modifiers.html

+0

請解釋s修飾詞的用法 – Curious

+0

@Curious查看附加鏈接。 – Kasramvd

+0

謝謝我得到它 – Curious

相關問題