Регулярное выражение, проверяющее 2 конкретных слова

Я ищу регулярное выражение, которое проверяет, содержит ли строка 2 конкретных слова. например, содержит ли строка петуха или курицу.

Заранее спасибо!

11
задан Pete 19 August 2010 в 07:27
поделиться

3 ответа

Выражение для поиска петуха или курицы как полного слова (т.е. не когда они являются частью более длинного, другого слова):

\b(rooster|hen)\b

Это мера безопасности, чтобы избежать ложных срабатываний при частичном совпадении.

Символ \b обозначает границу слова, которая представляет собой (нулевой ширины) участок между символом в диапазоне "символов слова" ([A-Za-z0-9_]) и любым другим символом. По сути, вышеприведенное:

  • совпадение в "Курица - это либо петух, либо курица."
  • не совпадение в "Куры - это либо петухи, либо куры." - но (rooster|hen) будет

В качестве примечания, чтобы разрешить множественное число, подойдет следующее: \b(петухи?|hen?)\b

22
ответ дан 27 October 2019 в 01:18
поделиться

Используйте | для альтернатив. В вашем случае это: (rooster|hen)

3
ответ дан 27 October 2019 в 01:18
поделиться

Вы не упомянули, какой движок/язык вы используете, но в общем случае регулярное выражение будет (rooster|hen). | - это оператор чередования.

2
ответ дан 27 October 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: