我有一个文本文件具有一些配置值.有一个评论从#
我试图找到一个正则表达式模式,将找出所有的行以#
我试图找到一个正则表达式模式,将找出所有的行以#
所以,示例文件:
1st line #test line this line #new line aaaa #aaaa bbbbbbbbbbb# cccccccccccc #ddddddddd
我想找
#test line this #ddddddddd
因为只有这两行以#
我尝试了以下代码:
preg_match_all("/^#(.*)$/siU",$text,$m); var_dump($m);
但它总是输出空数组.任何人都可以帮忙
您忘记了多行修饰符(并且您不应使用单线修饰符;也不必要使用不区分大小写的修饰符,也不要使用ungreedy修饰符):
preg_match_all("/^#(.*)$/m",$m);
说明:
> / m允许^和$在行的开始/结尾进行匹配,而不仅仅是整个字符串(你需要这里)
> / s允许点匹配换行符(你不想在这里)
> /我打开不区分大小写的匹配(你不需要这里)
> / U打开不平衡的匹配(这不会因为anchors而有所不同)
$text = "1st line\n#test line this \nline #new line\naaaa #aaaa\nbbbbbbbbbbb#\ncccccccccccc\n#ddddddddd"; preg_match_all("/^#(.*)$/m",$m); print_r($m[0]);
结果:
[0] => #test line this [1] => #ddddddddd