Saya bertanya-tanya apakah saya bisa mendapatkan ekspresi reguler yang akan cocok dengan string yang hanya memiliki karakter alfabet, dan itu saja.
à
karakter alfabet sesuai dengan definisi Anda? Bahasa apa yang Anda gunakan?
Saya bertanya-tanya apakah saya bisa mendapatkan ekspresi reguler yang akan cocok dengan string yang hanya memiliki karakter alfabet, dan itu saja.
à
karakter alfabet sesuai dengan definisi Anda? Bahasa apa yang Anda gunakan?
Jawaban:
Anda dapat menggunakan salah satu dari 2 varian ini:
/^[A-Z]+$/i
/^[A-Za-z]+$/
untuk mencocokkan string input huruf ASCII.
[A-Za-z]
akan cocok dengan semua huruf (baik huruf kecil dan besar).^
dan $
akan memastikan bahwa tidak ada apa pun selain huruf-huruf ini yang cocok.Kode:
preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);
Keluaran:
array(0) {
}
Kasing uji untuk komentar OP yang ingin dicocokkan hanya jika ada 1 atau lebih huruf yang ada dalam input. Seperti yang Anda lihat dalam kasus uji yang cocok gagal karena ada ^
di string input abcAbc^Xyz
.
Catatan: Harap dicatat bahwa jawaban di atas hanya cocok dengan huruf ASCII dan tidak cocok dengan karakter Unicode. Jika Anda ingin mencocokkan huruf Unicode maka gunakan:
/^\p{L}+$/u
Di sini, \p{L}
cocok dengan semua jenis huruf dari bahasa apa pun
\w is shorthand for A-Za-z
- tidak juga, \w
adalah singkatan untuk[a-zA-Z0-9_]
Jika Anda perlu memasukkan karakter alfabet non-ASCII, dan jika rasa regex Anda mendukung Unicode, maka
\A\pL+\z
akan menjadi regex yang benar.
Beberapa mesin regex tidak mendukung sintaks Unicode ini tetapi memungkinkan \w
singkatan alfanumerik juga cocok dengan karakter non-ASCII. Dalam hal ini, Anda bisa mendapatkan semua alfabet dengan mengurangi angka dan garis bawah dari \w
seperti ini:
\A[^\W\d_]+\z
\A
cocok pada awal string, \z
pada akhir string ( ^
dan $
juga cocok pada awal / akhir baris dalam beberapa bahasa seperti Ruby, atau jika opsi regex tertentu diatur).
Ini akan cocok dengan satu atau lebih karakter alfabet:
/^[a-z]+$/
Anda dapat membuatnya case sensitive menggunakan:
/^[a-z]+$/i
atau:
/^[a-zA-Z]+$/
Di Ruby dan bahasa lain yang mendukung kelas karakter POSIX dalam ekspresi braket, Anda dapat melakukannya dengan mudah:
/\A[[:alpha:]]+\z/i
Itu akan cocok dengan alpha-chars di semua bahasa alfabet Unicode. Peasy mudah.
Info lebih lanjut: http://en.wikipedia.org/wiki/Regular_expression#Character_classes http://ruby-doc.org/core-2.0/Regexp.html
[^[:alpha]]
.
[a-zA-Z]
harus melakukan itu dengan baik.
Anda dapat referensi lembar contekan .