2016-03-03 52 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

相关问题