Php 正则表达式-需要从html注释中获取字符串

Php 正则表达式-需要从html注释中获取字符串,php,regex,Php,Regex,我需要从HTML文件中的注释中获取字符串,我曾试图用DOM来实现这一点,但用这种方法并没有找到好的解决方案 所以我想用正则表达式试试,但我找不到满意的解决方案。拜托,你能帮我吗 这就是我需要的: <!--adress-"String here I need to get"--> 提前感谢您的回答在此代码之后查看$matches preg_match('~<!--adress-"(.*?)"-->~msi', $string, $matches); preg_mat

我需要从HTML文件中的注释中获取字符串,我曾试图用DOM来实现这一点,但用这种方法并没有找到好的解决方案

所以我想用正则表达式试试,但我找不到满意的解决方案。拜托,你能帮我吗

这就是我需要的:

<!--adress-"String here I need to get"-->


提前感谢您的回答

在此代码之后查看$matches

preg_match('~<!--adress-"(.*?)"-->~msi', $string, $matches);
preg_match(“~~msi”,$string,$matches);

HTML注释是常规的;您只需匹配
即可获得第一组


这假设注释总是格式良好,并且总是有一个带引号的字符串,不包含引号。

这样更准确:

$regex = '<!--(.+?)-"{0,1}(.+?)"{0,1}-->';
preg_match_all($regex, $html, $matches_array);
$regex='';
preg_match_all($regex、$html、$matches_数组);

只需执行
var\u转储($matches\u array)
即可查看结果。

HTML不是一种常规语言。无法使用正则表达式正确解析它。请查看此处:)这可能有助于@Mark:您不应该使用正则表达式解析HTML。然而,认为HTML不是正则语言的论点通常是假的(因为在任何现有的实现中,正则表达式很少是正则的)有人愿意解释他/她的否决票,以便我可以改进我的答案吗?我不知道是谁否决了你,但这可能是你写正则表达式给我的下意识反应“解析HTML”。不过,我认为他或她是错的,因为我不明白为什么不能使用正则表达式来提取HTML注释。有一件事:并非所有注释都与regexp匹配。注释由标记声明打开分隔符(
)和标记声明关闭分隔符(
)中的
--
分隔@DanielTrebbien:我只是跟着OP的needs@DanielTrebbien根据规范,
结束了它,所以我看不出这个答案有什么问题?