正则表达式:将PHP代码从eregi转换为preg_match

时间:2009-12-18 20:12:54

标签: php regex preg-match

我正在尝试找到合适的正则表达式,以便将eregi($1,$2)转换为preg_match("/$1/i",$2)

我需要考虑是否会有带()的函数,它们可能会出现一次以上。 任何人都可以提供正确的正则表达式吗?

感谢

2 个答案:

答案 0 :(得分:1)

您不希望使用正则表达式来解析代码。

您想要使用解析器。

答案 1 :(得分:1)

您是否尝试修改源代码,因为eregideprecated?这个正则表达式将起到作用:

$source= <<<STR
eregi(\$1, \$2);
eregi('hello', 'world');
STR;

$source2= preg_replace("/eregi\(['\"]*([^\'\"),]+)['\"]*,\s*['\"]*([^'\"),]+)['\"]*\)/", 'preg_match("/$1/i", "$2")', $source);

var_dump($source2);