Удалить () из строки

$item = "(1) Robin Hood (hero)";

Текст в скобках можно изменить.

Как убрать все скобки с текстом внутри них из строки?

Мы должны получить это:

$item = "Robin Hood";

Спасибо!

1 ответ

Решение

Ты можешь использовать preg_replace как:

$item = preg_replace('/\(.*?\)/s','',$item);

Похоже, вы также хотите удалить начальные и конечные пробелы после замены.
Вы можете использовать trim для этого как:

$item = trim( preg_replace('/\(.*?\)/s','',$item));

Используемое регулярное выражение \(.*?\):

  • ( а также ) метасимволы регулярных выражений, используемые для группировки. Чтобы соответствовать буквальному парантезу, вам нужно избежать их, поставив перед ними \,
  • Вы сопоставляете любой произвольный текст в скобках, используя .*?, Вы также можете сделать то же самое, используя [^)]*
  • . по умолчанию не соответствует символу новой строки. Чтобы сделать соответствие новой строки, мы используем s модификатор. Без этого мы не смогли бы сделать замену в "(hello\nworld) Hi"
Другие вопросы по тегам