2016-03-11 6 views
1

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

Ввод: Он (она) хочет (желает) удалить (удалить) текст между всеми круглыми скобками.

Выход: Он хочет удалить текст между всеми круглыми скобками.

Я пробовал использовать \ (. * \) Регулярное выражение, но он дает вывод, как: Он текст между всеми круглыми скобками. Что может быть подходящим для него выражением regex?

ответ

1

Изменить регулярное выражение, как показано ниже:

\(.*?\) 
  • .*? соответствует любому символу (кроме символа новой строки)
    • Квантор: *? между нулем и неограниченное количество раз, а несколько раз, как это возможно, расширение по мере необходимости [ленивый]

Demo

+0

Спасибо. Это сработало. – mqacim

1

Другим решением было бы:

\([^)]*\) 

Это означает:

  1. Найти скобку
  2. Все, что не является скобка
  3. Другой скобка
3

Это потому, что .* является greedy.
Что это значит, что механизм регулярных выражений будет пытаться сопоставить столько символов, сколько возможно, при совпадении рисунка.

Solution -:

Используйте это регулярное выражение шаблон - \(.*?\) вместо \(.*\).
Это заставит механизм регулярных выражений соответствовать минимальному количеству символов, необходимых для соответствия шаблону.

0

Используйте это.

var str = "He (she) wants (desires) to remove (delete) text in between all parentheses."; 

alert(str.replace(/\s*\(.*?\)\s*/g, ' ')); 
Смежные вопросы