2009-04-24 26 views
0

文字列に少なくとも1つの英字が含まれていることを確認するために正規表現を決定しようとしています。文字列に少なくとも1文字の英字が含まれていると判断するにはどうすればよいですか?

+0

あなたはどんな言葉を使っていますか? – cgp

+0

google first mr "unknown"文字通りどの言語でも正規表現の情報が文字通りボートロードされています。 – gnomed

答えて

4

これは、ほとんどの正規表現エンジンで動作します。この

"^.*[a-zA-Z].*$" 

を試してみてください。ただし、ASCIIアルファベット文字に制限されています。国際的な文字については、関与する正規表現エンジンを知る必要があります。

+0

申し訳ありませんが、これは100%正解です。下降票の説明が必要になる。 – JaredPar

+2

私は実際には*説明することはできません。それは私のものではありませんでしたが、そこではかなり非効率な正規表現があります。ほとんどの正規表現エンジンは、文字列内のどこでも一致するものを見つける方法を提供します。その場合、thinkcubeの答えはより良い選択です。文字列の先頭に固定されているメソッドは明示的には必要なく、 '。* [a-zA-Z]'を残して後続のアンカーを必要とするべきではありません。 –

+0

@Ben - それはそうだったし、アルファベットはa-zだと仮定しています。 – Alnitak

3

ここでは、次のとおりです。

[a-zA-Z] 
1

アルファベット文字のためのPOSIX標準マッチがある:

[[:alpha:]] 

.net相当

これは、UnicodeのためのMSのショートカットです
[\p{L}] 

ですJavaでもサポートされている5つの異なる「文字」文字クラス:

[\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}] 

など、これもアルファベットです任意の文字に一致する必要があることを注意だけではなく、通常のローマ字の「[a-zA-Z]」セット、したがってまた、アクセント付きの文字に一致し、

+0

[[:alpha:]]は広くサポートされていません。 Python、JavaScript、.NET(私の頭のすぐ上)はサポートしていません。私はPCREとPOSIXだけが信じています。 –

0

[a-zA-Z]あるいは[a-z]場合大文字と小文字を区別しないオプションを正規表現エンジンに渡します。

+0

なぜこれがダウンしたのかわからない、+1 – gnomed

3

は、「英字」の定義は、世界中で同じではないことを忘れないでください。たとえば、ノルウェーでは、正しい正規表現は[a-zA-ZæøåÆØÅ]です。

関連する問題