2016-11-02 3 views
0

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

/(Art|Dance|Writing|Theater \(Musical\))/g 

Проблема я бегу в том, что строки из одного слова «искусство» «Танцы», «Письмо» и т. Д. Идеально сочетаются, но я не могу понять, как соответствовать «Театр (музыкальный)». Все советы, которые я нашел, предназначены для сопоставления любой строки, которая может содержать пробелы, но мне нужно, чтобы она была только из данного списка.

Я считаю, что программное обеспечение, которое мы используем, использует аромат javascript regex, если это имеет значение.

+1

просто используйте \ s для пробела – Androbin

+0

Этот вопрос может помочь: http://stackoverflow.com/questions/6015462/brackets-in-regular-expression – Neal

+0

Сначала это тоже не работало, тогда я понял, нечувствительный флаг. Оставляя это, он соответствует даже без использования \ s. Почему флага, нечувствительная к регистру, влияет на границы пробелов/слов? – scferg5

ответ

4

Регулярное выражение в вашем ответе верное и будет соответствовать вводу Theater (Musical).

Here it is in Regex 101.

Это также will correctly match even if you have the i case insensitive flag set. (Конечно, он также будет соответствовать THEATER (mUsIcAl) и т.д. в этом случае).

Должна была быть какая-то другая проблема с вашим кодом или входными данными.

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