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.