RegEx для захвата и замены строки с кавычками - PullRequest
1 голос
/ 18 мая 2019

Я хочу str_replace в функции.

Попытка

str_replace(array('(', ')', array('"', '\'')), array('\(', '\)', '["|\']'), 'hello("test")');

Желаемый вывод:

hello\(["|']test["|']\)

Это будет работать, но не очень полезно:

str_replace(array('"', '\''), '["|\']', str_replace(array('(', ')'), array('\(', '\)'), 'hello("test")'));

Как мне решить эту проблему?

1 Ответ

1 голос
/ 19 мая 2019

Здесь мы можем захотеть захватить hello и test, а затем собрать то, что нам нравится, используя preg_replace:

$re = '/(.*)\("(.+)"\)/m';
$str = 'hello("test")';
$subst = "$1\([\"|']$2[\"|'\"]\)";

$result = preg_replace($re, $subst, $str);

echo $result;

Вывод

hello\(["|']test["|'"]\)

RegEx

enter image description here

RegEx

Вы можете изменять / изменять свои выражения в regex101.com .

RegEx Circuit

Вы также можете визуализировать свои выражения в jex.im :

enter image description here

...