我有以下两个正则表达式,我想知道它们不起作用的原因是什么:
$regex='#<br><h1 class="band name">(.+?)</h1><span class="bandinfotop">#';
preg_match($regex,$content,$match);
$name=$match[1];
在它确实有效的情况下,所选字符串类似于 **Häuptling 和“(R) Brechende Zäune”。它起作用的一个例子是“!n:事实”。
现在我想知道是否可能是因为字符串中的任何特定符号弄乱了我的正则表达式?喜欢变音符号?
稍后在代码中我这样做:
$name=strip_tags($name);
$name=htmlentities($name,null,"UTF-8");
if($name=="") $name="NULL";
对于那些它没有找到匹配的人,它会回显“NULL”。
感谢您的帮助!查尔斯
编辑 1 它似乎是最后三行 - 当最后一行之前的两行被注释掉时,它工作正常。
解决方案当我在 htmlentities() 中删除参数 null 和“UTF-8”时,它以某种方式工作。有谁知道为什么?