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.