У меня есть следующий сценарий, где у меня есть набор фраз, некоторые из них - несколько слов, некоторые - одни, я хотел бы соответствовать всем этим фразы, но с моим нынешним подходом я в конечном итоге одиночными словаRegex - Сопоставьте два слова или одно слово, но отдайте предпочтение двум словам
Для примера:
вещи, которые я мог бы соответствовать:
- солнечный день
- солнечная долина
- день
Regex: (sunny()day|sunny()valley|day)
Приговор: сегодня солнечный день
здесь, я надеюсь, что «солнечный день» сопоставляется однако, мое регулярное выражение всегда соответствует «день», может быть другие предложения, содержащие только один день, который я хочу сопоставить.
Кто-нибудь знает, как создать регулярное выражение, которое выполняет эту задачу?
У вас есть группы для пробелов. Это специально? –
@emartinelli не специально, я просто хотел указать пространство прямо там, не получая смешанных результатов, может быть, есть лучший способ сделать это? – perrohunter
Вы можете использовать '\ s' для представления пробела. Но даже используя «реальное пространство», вам не нужны скобки, потому что в этом случае они будут генерировать дополнительные совпадения. Например: используя ответ @stribizhev и ваш ввод, «солнечный день» и пробел будут сопоставлены. Чтобы не соответствовать этому дополнительному пространству, используйте '\ b (sunny \ sday | sunny \ svalley | day) \ b' [(demo)] (https://regex101.com/r/iS9bY7/1) –