我有一个带有某些配置值的文本文件。以#开头的注释我试图找到一个正则表达式模式,该模式将找出以#开头的所有行。
因此,示例文件:
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",$text,$m);
说明:
/m
^
$
/s
/i
/U
一个PHP代码演示:
$text = "1st line\n#test line this \nline #new line\naaaa #aaaa\nbbbbbbbbbbb#\ncccccccccccc\n#ddddddddd"; preg_match_all("/^#(.*)$/m",$text,$m); print_r($m[0]);
结果:
[0] => #test line this [1] => #ddddddddd