Regex mencocokkan satu dari dua kata


301

Saya memiliki input yang hanya dapat memiliki 2 nilai appleatau banana. Apa ekspresi reguler yang dapat saya gunakan untuk memastikan bahwa salah satu dari dua kata itu dikirimkan?


2
Dalam bahasa / lingkungan apa regex ini diterapkan? Regex tampaknya seperti overhead yang tidak perlu dalam banyak situasi.
mickmackusa

Jawaban:


467

Ini akan melakukan:

/^(apple|banana)$/

untuk mengecualikan dari string yang ditangkap (mis. $1, $2):

(?:apple|banana)

43
Untuk beberapa orang, menggunakan ini sebagai grup yang tidak menangkap akan berguna. Menggunakan (?:apple|banna)akan cocok, tetapi tidak akan menambahkannya ke daftar string yang diambil (misalnya $1, $2.. $N).
doub1ejack

Hai pertanyaan cepat, apa yang harus saya lakukan jika saya tidak ingin applebanana cocok?
Grover Reyes

Regex di atas cocok dengan apel dan pisang, tetapi tidak cocok dengan applebanana.
phlogratos

99

Ada berbagai mesin regex tetapi saya pikir sebagian besar dari mereka akan bekerja dengan ini:

apple|banana

55
Jika Anda berencana untuk menempatkan lebih banyak di regex Anda, Anda harus menempatkan tanda kurung di sekitar kata-kata Anda, seperti ini: (apple|banana).
Brian J

tetapi bagaimana membuatnya case sensitif?
Nitish

Itu diatur dengan re.IGNORECASEbendera. Contoh:re.compile("(apple|banana)", re.IGNORECASE)
Troels Ynddal

-8

Ekspresi reguler /.txt|.tif/dapat digunakan di SiteScope untuk menemukan 'Pencocokan nama file' untuk direktori Monitor ketika mencari dua jenis file yang berbeda - file yang berakhiran .txt atau .tif

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.