regex 正则表达式匹配HTML环绕HTML

9o685dep  于 2023-01-14  发布在  其他
关注(0)|答案(2)|浏览(142)

不久前,我在这里询问了如何匹配字符串中两个 Package 的<code>..</code>标记内的文本,在有人将其他HTML Package 在<code>标记内之前,它一直工作得很好。
这就是我目前的做法:

preg_match_all("!<code>([^<]*)</code>!", $string, $return_array);

有人能改进这个正则表达式来解决我的问题吗?

bqf10yzr

bqf10yzr1#

这是一个我不得不同意可怕的正则表达式是邪恶的模因的例子。对于直接的提取目的,正则表达式通常是合适的。但是如果你想处理格式错误和/或嵌套的HTML,它不是一个没有重大麻烦的选择。
因此,我建议在这种情况下使用phpQuery或QueryPath,也很简单:

print qp($html)->find("code")->text();
vohkndzv

vohkndzv2#

你试过这个吗?

preg_match_all("!<code>(.*?)</code>!", $string, $return_array);

相关问题