如何将方形支架与文字字符表达相匹配?

时间:2014-10-08 15:42:19

标签: php regex

我有以下代码:

<?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;

2 个答案:

答案 0 :(得分:2)

问题在于+。您需要将其转义为+这样的文字\+,否则它会重复前一个字符一次或多次。

params\['Au' \+ 'thKey'\] = (.*?);

DEMO

代码:

preg_match_all("~params\['Au' \+ 'thKey'\] = (.*?);~", $content, $match2);

答案 1 :(得分:0)

将其更改为

preg_match_all("/params\\['Au' \\+ 'thKey'\\] = (.*?);/", $content, $match2);