1

我正在尝试找到要转换eregi($1,$2)为的正确正则表达式preg_match("/$1/i",$2)

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

谢谢

4

2 回答 2

1

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

您想使用解析器。

于 2009-12-18T20:14:58.827 回答
1

您是否尝试修改源代码,因为eregi弃用?这个正则表达式可以解决问题:

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

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

var_dump($source2);
于 2009-12-18T20:36:53.367 回答