Sesuatu seperti / ^ [a-zA-Z] + $ / harus berfungsi.
Julian Go
10
Apakah àkarakter alfabet sesuai dengan definisi Anda? Bahasa apa yang Anda gunakan?
Tim Pietzcker
2
haruskah senar kosong cocok?
ysth
tidak string yang kosong tidak boleh cocok
Steffan Harris
Satu catatan penting: Anda tidak merujuk bahasa atau alat tempat Anda ingin menggunakan regex yang Anda minta. Meskipun prinsip-prinsip regex sama secara universal, sintaksinya tidak sama di mana-mana. Anda harus merujuk tempat Anda ingin menggunakannya.
sergiol
Jawaban:
186
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.
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
Dalam beberapa dialek, [Az] akan cocok dengan nilai tanda baca ASCII yang terjadi antara 'Z' dan 'a', khususnya '[', '\', ']', '^', '-' dan '`', seperti juga 'A' sampai 'Z' dan 'a' sampai 'z'.
Lee
Yang saya benar-benar inginkan adalah cara untuk mencocokkan string saya hanya ketika memiliki karakter alfabet, jika memiliki karakter non alfabet, itu tidak harus cocok.
Steffan Harris
7
@ Lee: Tidak beberapa. Mereka semua. Regex ini salah dalam kondisi saat ini.
Tim Pietzcker
7
\w is shorthand for A-Za-z- tidak juga, \wadalah singkatan untuk[a-zA-Z0-9_]
anubhava
1
Poin bagus @ jpmc26. Saya telah mengedit jawaban saya untuk menghapus kesalahan asli saya.
anubhava
55
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 \wsingkatan alfanumerik juga cocok dengan karakter non-ASCII. Dalam hal ini, Anda bisa mendapatkan semua alfabet dengan mengurangi angka dan garis bawah dari \wseperti ini:
\A[^\W\d_]+\z
\Acocok pada awal string, \zpada akhir string ( ^dan $juga cocok pada awal / akhir baris dalam beberapa bahasa seperti Ruby, atau jika opsi regex tertentu diatur).
+1 karena tidak mempertimbangkan alfabet Inggris sebagai satu-satunya alfabet
srcspider
7
+1, sama seperti di atas. bahasa inggris bukan satu-satunya alfabet dan banyak orang menulis nama mereka menggunakan karakter non-ascii untuk mengekspresikannya dengan benar.
Ben Barkay
22
Ini akan cocok dengan satu atau lebih karakter alfabet:
à
karakter alfabet sesuai dengan definisi Anda? Bahasa apa yang Anda gunakan?Jawaban:
Anda dapat menggunakan salah satu dari 2 varian ini:
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:
Keluaran:
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 inputabcAbc^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:
Di sini,
\p{L}
cocok dengan semua jenis huruf dari bahasa apa punsumber
\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
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
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).sumber
Ini akan cocok dengan satu atau lebih karakter alfabet:
Anda dapat membuatnya case sensitive menggunakan:
atau:
sumber
Di Ruby dan bahasa lain yang mendukung kelas karakter POSIX dalam ekspresi braket, Anda dapat melakukannya dengan mudah:
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
sumber
[^[:alpha]]
.[a-zA-Z]
harus melakukan itu dengan baik.Anda dapat referensi lembar contekan .
sumber