Saya ingin mencocokkan dua kata sandi dengan ekspresi reguler. Misalnya saya punya dua input "123456" dan "1234567" maka hasilnya harus tidak cocok (salah). Dan ketika saya telah memasukkan "123456" dan "123456" maka hasilnya harus sama (benar).
Saya tidak bisa membuat ekspresi. Bagaimana saya melakukannya?
Jawaban:
jika Anda memiliki kata sandi input dalam suatu variabel dan Anda ingin mencocokkan dengan tepat 123456 maka anchor akan membantu Anda:
dalam perl tes untuk mencocokkan kata sandi akan menjadi seperti
EDIT:
bart kiers benar kan, mengapa Anda tidak menggunakan strcmp () untuk ini? setiap bahasa memilikinya dengan caranya sendiri
sebagai pemikiran kedua, Anda mungkin ingin mempertimbangkan mekanisme otentikasi yang lebih aman :)
sumber
\z
bukan$
./^123456$/
cocok dengan keduanya123456
dan123456
diikuti oleh umpan baris, sementara/^123456\z/
hanya cocok123456
.Dalam jawaban malfaux '^' dan '$' telah digunakan untuk mendeteksi awal dan akhir teks.
Ini biasanya digunakan untuk mendeteksi awal dan akhir suatu garis.
Namun ini mungkin cara yang benar dalam kasus ini.
Tetapi jika Anda ingin mencocokkan kata yang tepat, cara yang lebih elegan adalah menggunakan '\ b' . Dalam kasus ini, pola berikut akan cocok dengan frasa persis '123456 '.
sumber
\bhttp:\/\/www.foo.com\b
akan cocokhttp://www.foo.com=?http://www.foo.com
dengan URL apa adanya. Respons pertama, menggunakan^
(awal) dan$
(akhir) adalah metode terbaik melalui penguji ini: regex101.com dan regexr.com (tester yang disertakan dalam tautan di bawah ini tidak sangat ramah pengguna, ini jauh lebih baik)ini memastikan bahwa pertandingan Anda tidak didahului oleh beberapa karakter, angka, atau garis bawah dan tidak segera diikuti oleh karakter atau angka, atau garis bawah
jadi itu akan cocok dengan "abc" di "abc", "abc.", "abc", tetapi tidak "4abc", atau "abcde"
sumber
\w
cocok dengan digit serta huruf, jadi[\w\d]
mubazir.Cara yang lebih lurus ke depan adalah memeriksa kesetaraan
namun, jika Anda benar-benar ingin tetap berpegang pada ekspresi reguler,
sumber
Anda juga dapat mencoba menambahkan ruang pada awal dan akhir kata kunci:
/\s+123456\s+/i
.sumber