gpt4 book ai didi

PHP正则表达式匹配以特殊字符开头的行

转载 作者:IT王子 更新时间:2023-10-29 00:04:19 28 4
gpt4 key购买 nike

我有一个包含一些配置值的文本文件。评论以#开头我正在尝试找到一个正则表达式模式,它将找出所有以 #

开头的行

因此,示例文件:

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 打开非贪婪匹配(由于 anchors 在这里没有区别)

A PHP code demo :

$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

关于PHP正则表达式匹配以特殊字符开头的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035072/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com