gpt4 book ai didi

php - 当正则表达式正常时,为什么 preg_match 找不到标签之间的字符串?

转载 作者:搜寻专家 更新时间:2023-10-31 20:39:49 24 4
gpt4 key购买 nike

我这里有下一期。我正在尝试使用 preg_match/preg_match_all 获取两个 HTML 评论标签之间的字符串,但我得到的结果是包含大量记录的空数组。

这是我的代码:

$pattern = "/\<!-- Start of NewsTicker --\>(.*)\<!-- End of NewsTicker --\>/";
preg_match_all($pattern, $description , $matches);

正则表达式模式本身似乎是有效的,因为当我在 $description 变量中的两个标签之间放置一个简短的示例字符串(如:“123456”)时它对我有用。

但是在现实生活中它不起作用,我猜这是因为内容的长度。

这是我的 preg_match 失败的真实案例示例: http://www.phpliveregex.com/p/6oJ

谁能解释一下这个问题是如何解决的?总是可以使用简单的字符串函数,如 strpos、substr 等。但是没有其他更好的选择吗?

非常感谢!

最佳答案

您应该添加“匹配换行符”标志,即 s

所以你的正则表达式应该如下:

$pattern = "/\<!-- Start of NewsTicker --\>(.*)\<!-- End of NewsTicker--\>/s";

关于php - 当正则表达式正常时,为什么 preg_match 找不到标签之间的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25360547/

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