我有以下代码:
<?php
// $content = LOTS OF CONTENT HERE
preg_match('/Token: \'(.*?)\'/', $content, $token);
print_r($token); // Works like a charm.
preg_match_all("/params\['Au' + 'thKey'\] = (.*?);/", $content, $match2);
print_r($match2); // Returns blank array.
在检查完所有内容后,我找到了解决方案,即逃逸存在一些问题。任何人都可以帮我吗?我认为它的方括号?
PS:正则表达式的原始文本是params['Au' + 'thKey'] = TEXTHERE;
答案 0 :(得分:2)
问题在于+
。您需要将其转义为+
这样的文字\+
,否则它会重复前一个字符一次或多次。
params\['Au' \+ 'thKey'\] = (.*?);
代码:
preg_match_all("~params\['Au' \+ 'thKey'\] = (.*?);~", $content, $match2);
答案 1 :(得分:0)
将其更改为
preg_match_all("/params\\['Au' \\+ 'thKey'\\] = (.*?);/", $content, $match2);