regex: преобразование php-кода из eregi в preg_match - PullRequest
1 голос
/ 18 декабря 2009

Я пытаюсь найти правильное регулярное выражение для преобразования eregi($1,$2) в preg_match("/$1/i",$2)

Мне нужно рассмотреть, будут ли в нем функции с (), и они могут появляться более одного раза. Может ли кто-нибудь предоставить правильное регулярное выражение для этого?

спасибо

Ответы [ 2 ]

1 голос
/ 18 декабря 2009

Вы пытаетесь изменить свой исходный код, поскольку eregi является устаревшим ? Это регулярное выражение сделает свое дело:

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

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

var_dump($source2);
1 голос
/ 18 декабря 2009

Вы не хотите использовать регулярное выражение для разбора кода.

Вы хотите использовать парсер.

...