アルファベット文字のみの文字列と一致する正規表現が得られるか、それだけかどうか疑問に思っていました。
à
英字はあなたの定義に一致していますか?どの言語を使用していますか?
アルファベット文字のみの文字列と一致する正規表現が得られるか、それだけかどうか疑問に思っていました。
à
英字はあなたの定義に一致していますか?どの言語を使用していますか?
回答:
次の2つのバリアントのいずれかを使用できます。
/^[A-Z]+$/i
/^[A-Za-z]+$/
ASCIIアルファベットの入力文字列を照合します。
[A-Za-z]
すべてのアルファベット(小文字と大文字の両方)に一致します。^
そして$
必ず何が、これらのアルファベットが一致されることになります。コード:
preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);
出力:
array(0) {
}
テストケースは、入力に1つ以上のアルファベットが存在する場合にのみ一致させたいというOPのコメント用です。テストケースでわかるよう^
に、入力文字列に一致があったため、一致が失敗しましたabcAbc^Xyz
。
注:上記の回答はASCIIアルファベットにのみ一致し、Unicode文字には一致しないことに注意してください。Unicode文字に一致させたい場合は、次を使用します。
/^\p{L}+$/u
ここでは、\p{L}
あらゆる言語のあらゆる種類の文字に一致します
\w is shorthand for A-Za-z
-実際に\w
は、省略形です[a-zA-Z0-9_]
ASCII以外のアルファベット文字を含める必要があり、正規表現フレーバーがUnicodeをサポートしている場合は、
\A\pL+\z
正しい正規表現になります。
一部の正規表現エンジンはこのUnicode構文をサポートしていませんが、\w
英数字の短縮形は非ASCII文字にも一致します。その場合、次の\w
ように数字とアンダースコアを引くと、すべてのアルファベットを取得できます。
\A[^\W\d_]+\z
\A
文字列の先頭に一致し、\z
文字列の末尾に(^
及び$
またRubyのようないくつかの言語の行の開始/終了時に一致する、または特定の正規表現のオプションが設定されている場合)。
ブラケット式でPOSIX文字クラスをサポートするRubyおよびその他の言語では、次のことを簡単に実行できます。
/\A[[:alpha:]]+\z/i
これは、すべてのUnicodeアルファベット言語の英字と一致します。かんたん。
詳細:http : //en.wikipedia.org/wiki/Regular_expression#Character_classes http://ruby-doc.org/core-2.0/Regexp.html
[^[:alpha]]
。