PHP: пропущенные части строки, заключенные в [] () {} - PullRequest
0 голосов
/ 22 февраля 2019

Можно ли создать правило, которое может одновременно удалять любые части строки, заключенные в [] () и {}, только оставляя любую ее часть?

Например, если яесть строка, подобная этой:

// Input
$string = 'my(apple)[banana][carrot(orange)]food[supply]';

// Output
$string = 'myfood';

Я знаю, как выбрать части строки, заключенные в квадратные скобки, но в этом случае я хочу выбрать любые части, которые не заключены в строку.

Вот мое текущее регулярное выражение, в котором я застрял, и я могу выбрать вложенные символы:

\[.*?\]|\(.*?\)|\{.*?\}

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Я узнал ответ:

  $var = 'my(apple)[banana][carrot(orange)]food[supply]';

  echo preg_replace('/\[.*?\]|\(.*?\)|\{.*?\}/', '', $var);
0 голосов
/ 22 февраля 2019

Это обходной путь,

$string = 'my(apple)[banana][carrot(orange)]food[supply]{test}';
echo preg_replace('/{(.*?)}|\[.*?\]|\([^)]+\)/","",$string);

Здесь работает демо .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...