2010-11-22 2 views
1
$item = "(1) Robin Hood (hero)"; 

Текст внутри кронштейнов можно изменить.Удалить() из строки

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

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

$item = "Robin Hood"; 

Спасибо!

ответ

6

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

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

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

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

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

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

какова разница между вашим и раствором stillstanding в? – James

+0

@Happy: Я обновил сообщение. – codaddict

+0

Почему '. *?'? Разве не просто «. *» Будет работать так же хорошо? ('.' соответствует любому символу,' * 'повторяет спецификатор ноль или более раз, а затем'? ', чтобы соответствовать тому, существуют ли эти ноль или более любых символов.) –

Смежные вопросы