1. ホーム
  2. regex

[解決済み] アルファベットのみにマッチする正規表現

2022-04-20 02:03:49

質問

アルファベットだけの文字列にマッチする正規表現があれば教えてほしいのですが。

解決方法は?

この2つのバリエーションは、どちらを使ってもかまいません。

/^[A-Z]+$/i
/^[A-Za-z]+$/

で、ASCIIアルファベットの入力文字列にマッチします。

  • [A-Za-z] は、すべてのアルファベット(小文字と大文字の両方)にマッチします。
  • ^$ は、これらのアルファベット以外にはマッチしないようにします。

コード

preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);

出力します。

array(0) {
}

テストケース は、OPのコメントにあるように ただし 入力に1つ以上のアルファベットがある場合。テストケースでは ^ を入力文字列 abcAbc^Xyz .

なお、上記の回答は はASCIIアルファベットにのみマッチします。 で、Unicode文字にはマッチしません。もし、Unicode文字にマッチさせたい場合は、次のようにしてください。

/^\p{L}+$/u

ここです。 \p{L} は、あらゆる言語のあらゆる種類の文字にマッチします。