Regex відповідає одному з двох слів


301

У мене є вхід, який може мати лише 2 значення appleабо banana. Який регулярний вираз я можу використати для того, щоб було подано будь-яке з двох слів?


2
Якою мовою / середовищем реалізується цей регулярний вираз? Regex здається непотрібним накладними в багатьох ситуаціях.
mickmackusa

Відповіді:


467

Це зробить:

/^(apple|banana)$/

щоб виключити із захоплених рядків (наприклад $1, $2):

(?:apple|banana)

43
Для деяких буде корисним використання цієї групи, яка не захоплює. Використання (?:apple|banna)відповідатиме будь-якому, але не додасть їх до списку захоплених рядків (наприклад $1, $2.. $N).
sum1ejack

Привіт, швидке запитання, що мені робити, якщо я не хочу, щоб яблука збігалася?
Гровер Рейєс

Регекс вище відповідає яблуку та банану, але не відповідає яблучному банану.
флогратос

99

Існують різні двигуни регексу, але я думаю, що більшість з них буде працювати з цим:

apple|banana

55
Якщо ви плануєте помістити більше в своєму регулярному виразі, вам необхідно поставити дужки навколо слів, як це: (apple|banana).
Брайан Дж

але як зробити це нечутливим?
Нітіш

Це встановлено з re.IGNORECASEпрапором. Напр .:re.compile("(apple|banana)", re.IGNORECASE)
Тролі Інддал

-8

Регулярний вираз /.txt|.tif/може використовуватися на SiteScope для пошуку "відповідності імені файлу" для монітора каталогу під час пошуку двох різних типів файлів - файлів, що закінчуються на .txt або .tif

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.