Php 修正正则表达式模式,使其更精确

Php 修正正则表达式模式,使其更精确,php,regex,Php,Regex,我试图匹配上面代码中的以下变量的值。我一直在使用这个模式preg\u match'\[\{.*.\}\]s',$html,$match;直到上周,它才停止工作 有没有办法在模式中包含alertsystem.go=,这样我就可以确保找到匹配项了?您希望预先匹配所有项,然后查看$matches[0]。您的正则表达式也可以是:alertsystem\.notification\s*\=\s*\{.*?\}is 在适当的地方添加括号以捕获特定部分。这是JSON吗?如果是,您是否考虑过删除数据部分并对其进

我试图匹配上面代码中的以下变量的值。我一直在使用这个模式preg\u match'\[\{.*.\}\]s',$html,$match;直到上周,它才停止工作

有没有办法在模式中包含alertsystem.go=,这样我就可以确保找到匹配项了?

您希望预先匹配所有项,然后查看$matches[0]。您的正则表达式也可以是:alertsystem\.notification\s*\=\s*\{.*?\}is


在适当的地方添加括号以捕获特定部分。

这是JSON吗?如果是,您是否考虑过删除数据部分并对其进行json解码?您是否尝试过将新前缀包含在正则表达式中?为了调试正则表达式,我建议您检查一下它有一些非常好的功能,并且在Linux上的Wine下工作。@Pekka preg_match'\[\{.*.\\\\\]s',$html,$match$values=json_decode$match[1],TRUE;这就是我所拥有的,但它没有给我msgbody或msgtitle的值,等等,它给了我一些完整的值different@mario我不确定如何将其添加到任何想法中?我尝试在regex模式的各个部分中放置,但我只能让它返回整个字符串。我可以将其放置在何处,以便它只返回msgTitle:Message、msgBody:No new Message、msgLink:whiches Message、No new Message的值,而不是{.*?\}使用{.*?\}。然后var_转储$matches;查看捕获的匹配项的位置。我不记得了,也不想被打扰。。。。哦,等等。。看好的:它们将在$matches[1]中。
alertsystem.notification = {"msgId":"1","msgTitle":"Message","msgBody":"No new message.","msgLink":"","msgImage":""};