Saya perlu menentukan apakah sebuah string berisi dua atau lebih karakter alfa yang berurutan. Dua atau lebih [a-zA-Z]
berdampingan. Contoh:
"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid
Jawaban:
[a-zA-Z] {2,} tidak berfungsi untuk dua atau lebih karakter berurutan yang identik. Untuk melakukan itu, Anda harus menangkap karakter apa pun dan kemudian mengulangi tangkapan seperti ini:
(.) \ 1
Tanda kurung menangkap. yang mewakili karakter apa pun dan \ 1 adalah hasil dari penangkapan - pada dasarnya mencari pengulangan karakter tersebut secara berurutan. Jika Anda ingin lebih spesifik tentang karakter apa yang ingin Anda temukan identik secara berurutan, cukup ganti "karakter apa pun" dengan kelas karakter ...
([a-zA-Z]) \ 1
Menemukan huruf kecil atau besar yang berulang secara berurutan. Cocok di "abbc123" dan bukan "abc1223". Untuk memberikan spasi di antara mereka (yaitu a ab), maka sertakan spasi opsional di regex antara karakter yang ditangkap dan pengulangan ...
([az] AZ]) \ s? \ 1
Saya cukup yakin Anda bisa menggunakan [Az] daripada [a-zA-Z] untuk mendapatkan karakter alfa huruf besar dan kecil http://www.w3schools.com/jsref/jsref_obj_regexp.asp
[A-z]
cocok lebih dari sekedar huruf. Secara khusus, ini juga cocok dengan tanda kurung siku, garis miring terbalik, tanda sisipan, garis bawah, dan backticks.
Z
dan a
, jadi akan (secara keliru) dimasukkan dalam pola seperti itu. Saya setuju dengan rekomendasi: Jangan gunakan w3schools! Ada banyak informasi yang agak buruk seperti ini.
[65-90]
akan mencocokkan 5
- 9
(yang juga mencakup 6
) dan 0
!
{2}
tanpa koma juga harus bekerja, bukan?