文字を許可しない正規表現が必要です。
^[A-Z0-9 _]*[A-Z0-9][A-Z0-9 _]*$
あらゆる種類の文字 (英語、中国語、ギリシャ語など) をエスケープする必要があるため、これらは機能していないようです。
\p{L}
orを使用\p{Letter}
して、任意の言語の任意の (Unicode) 文字に一致させます。非文字に一致させるには、次のいずれかを使用して否定する必要があります:\p{^L}
または\P{L}
(使用している正規表現エンジンによって異なります)。
数字と . POSIX (PHP) を使用した文字:
^[.1-9]*$
単語文字を明示的に除外したい場合
^[^\w]*$
これは、単語の文字以外に一致します。
注(コメントで回答されているように):
あなたは投稿を編集し、PHP を使用していると述べました。私の知る限り、POSIX ERE を使用しています。その場合、このソリューションは機能しません。ただし、別のユーザー (サポートされているエンジンを使用するユーザー) がこの回答を見つけた場合に備えて、検索機能の回答を保持します。
任意の文字 \w 文字
ではありません \W