everyone。 你能给我一些关于如何在1中加入以下3个正则表达式的建议吗?加入3个正则表达式1
preg_match_all('/>\s*([\w-]+)\s*</', $str, $matches_1);
preg_match_all('/<\?=\s*([\w-]+)\s*\?>/', $str, $matches_2);
preg_match_all('/echo\s*["|']+\s*([\w-]+)["|']+/', $str, $matches_3);
UPDATE
preg_match_all(
'/
>\s*([\w-]+)\s*<
|
<\?=\s*([\w-]+)\s*\?>
|
echo\s*("|')+\s*([\w-]+)("|')+
/x',
$str, $matches_123);
对我来说,语法,如果写在一行,并移除X-修改以上才有效。出于某种原因,不这样做的原因:
警告:preg_match_all()[function.preg匹配-所有]:编译失败:丢失),偏移量125 ...
我已经解决了它只是在3个字符串中拆分正则表达式并将它们连接起来,但它是一团糟。
有一个问题:它工作吗?如果是这样,为什么修理没有损坏的东西? – mellamokb 2011-05-13 15:04:58
@mellamokb它的工作原理。但是,考虑你有一个非常大的字符串,你需要应用正则表达式。有了上面的代码,你需要解析这个大字符串三次,我认为这不是一个好习惯。 – noname 2011-05-13 19:14:12
正如@AlanMoore在下面写的那样,这个特殊的3行/ x正则表达式只能和每个'#'都转义成'\#'一起使用。但是,当然,再次压缩它的效果是一样的。 – mario 2011-05-15 15:28:35