我正在尝试找到合适的正则表达式,以便将eregi($1,$2)
转换为preg_match("/$1/i",$2)
我需要考虑是否会有带()的函数,它们可能会出现一次以上。 任何人都可以提供正确的正则表达式吗?
感谢
答案 0 :(得分:1)
您不希望使用正则表达式来解析代码。
您想要使用解析器。
答案 1 :(得分:1)
您是否尝试修改源代码,因为eregi
是deprecated?这个正则表达式将起到作用:
$source= <<<STR
eregi(\$1, \$2);
eregi('hello', 'world');
STR;
$source2= preg_replace("/eregi\(['\"]*([^\'\"),]+)['\"]*,\s*['\"]*([^'\"),]+)['\"]*\)/", 'preg_match("/$1/i", "$2")', $source);
var_dump($source2);