Saya memiliki ekspresi reguler sebagai berikut:
^/[a-z0-9]+$
Ini cocok dengan string seperti /hello
atau /hello123
.
Namun, saya ingin mengecualikan beberapa nilai string seperti /ignoreme
dan /ignoreme2
.
Saya sudah mencoba beberapa varian tetapi sepertinya tidak dapat membuatnya bekerja!
Upaya lemah terakhir saya adalah
^/(((?!ignoreme)|(?!ignoreme2))[a-z0-9])+$
Setiap bantuan akan sangat dihargai :-)
Jawaban:
Inilah cara lain (menggunakan pandangan negatif ke depan ):
Catatan: Hanya ada satu ungkapan menangkap:
([a-z0-9]+)
.sumber
(\?(.+))?$
harus cepat. Saya tidak akan terlalu khawatir tentang kecepatan.java.util.regex.Pattern
kelas Java .Ini harus dilakukan:
Anda dapat menambahkan kata-kata yang diabaikan sebanyak yang Anda suka, di sini adalah implementasi PHP sederhana:
sumber
Karena Anda ingin mengecualikan kedua kata, Anda perlu kata penghubung:
Sekarang kedua kondisi harus benar (baik ignoreme atau ignoreme2 tidak diizinkan) untuk memiliki kecocokan.
sumber
/ignoremenot
yang/
diikuti olehignoreme
.