Normal ifade iki kelimeden biriyle eşleşir


301

Sadece 2 değeri olan bir girdi var appleveya banana. İki kelimeden birinin gönderilmesini sağlamak için hangi düzenli ifadeyi kullanabilirim?


2
Bu normal ifade hangi dilde / ortamda uygulanıyor? Regex birçok durumda gereksiz bir ek yük gibi görünüyor.
— mickmackusa

Yanıtlar:


468

Bu yapacaktır:

/^(apple|banana)$/

için dışlamak Yakalanan dizeleri (örneğin dan $1, $2):

(?:apple|banana)

43
Bazıları için bunu yakalamayan bir grup olarak kullanmak faydalı olacaktır. Kullanmak (?:apple|banna)da eşleşir, ancak yakalanan dizeler listesine eklemez (ör. $1, $2Vb. $N).
— doub1ejack

Merhaba hızlı soru, applebanana'nın eşleşmesini istemiyorsam ne yapmalıyım?
— Grover Reyes

Yukarıdaki normal ifade elma ve muz ile eşleşir, ancak applebanana ile eşleşmez.
— Mart'ta

100

Farklı regex motorlar var ama bunların çoğu bununla çalışacağını düşünüyorum:

apple|banana

55
Eğer regex daha koymak planlıyorsanız, bu gibi sözlerin etrafında parantez koymak gerekir: (apple|banana).
— Brian J

ama bunu nasıl duyarsız hale getirebiliriz?
— Nitish

Bu re.IGNORECASEbayrakla ayarlanmış . Örn:re.compile("(apple|banana)", re.IGNORECASE)
— Troels Ynddal

-8

/.txt|.tif/SiteScope'ta, .txt veya .tif ile biten iki farklı dosya türünde arama yaparken Dizin izleyicisi için 'Dosya adı eşleşmesi'ni bulmak üzere düzenli ifade kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.