Saat ini saya sedang memprogram algoritma kosa kata yang memeriksa apakah pengguna mengetik kata dengan benar. Saya memiliki situasi berikut: Solusi yang tepat untuk kata itu adalah "part1, part2". Pengguna harus dapat memasukkan "part1" (jawaban 1), "part2" (jawaban 2) atau "part1, part2" (jawaban 3). Sekarang saya mencoba untuk mencocokkan string yang diberikan oleh pengguna dengan ekspresi regex berikut yang dibuat secara otomatis:
^(part1|part2)$
Ini hanya mengembalikan jawaban 1 dan 2 sebagai benar sedangkan jawaban 3 salah. Saya sekarang bertanya-tanya apakah ada operator yang mirip dengan | yang mengatakan and/or
bukannya either...or
.
Adakah yang bisa membantu saya mengatasi masalah ini?
$or
regexJawaban:
Saya akan berasumsi bahwa Anda ingin membuat regex secara dinamis mengandung kata-kata selain part1 dan part2, dan Anda ingin agar tidak menjadi masalah. Jika demikian, Anda dapat menggunakan sesuatu seperti ini:
Pertandingan positif:
Pencocokan negatif:
sumber
Apakah itu bekerja?
sumber
Apakah ini berfungsi tanpa pergantian?
atau mengapa tidak?
Yang pertama bekerja untuk semua kondisi yang kedua untuk semua tetapi
part2
(menggunakan GNU sed 4.1.5)sumber
Bukan ahli dalam regex, tetapi Anda bisa melakukannya
^((part1|part2)|(part1, part2))$
. Dengan kata: "bagian 1 atau bagian2 atau keduanya"sumber
Atau Anda dapat menggunakan ini:
sumber