2012-03-08 28 views
2

入力に大文字、数字、および正規表現のピリオドのみが含まれているかどうかを確認しようとしています。 Javaの正規表現のパターンは何でしょうか?大文字、数字、およびピリオドを一致させる正規表現

私はこの正規表現を、どのようなオンラインツールでも構築する方法に関するガイドはありますか?

また、正規表現を使用して文字列の長さが50以下であることを確認することは可能ですか?

+0

大文字は[\。] [AZ]、数字[0-9]の期間になります(エスケープする必要があります)すなわちから、10-あなたのキャラクタの組み合わせに合わせて、長さが10から50文字(51ではなく)の50文字が{10 .50} {10 .50}であることを確認してください。 –

答えて

4

を好むこれはUnicodeの答えです:

^[\p{Lu}\p{Nd}.]{0,50}$ 

regular-expressions.info

から

\ p {Lu}または\ p {Uppercase_Letter}:小文字のバリアントを持つ大文字。

\ p {Nd}または\ p {Decimal_Digit_Number}:表意文字のスクリプトを除くすべてのスクリプトの0〜9の数字。

^$開始され、文字列の末尾が

+0

** BRAVO!** ASCII-brainを打ち抜きます。 – tchrist

+0

'$'はJavaの文字列の最後ではありません。それは '\ z'です。 '$'は通常は '\ Z'と同じです。 –

+1

@MikeSamuelこれは少し技術的になってきています。 '$'は通常 '\ n?\ z'ですが、これはほとんどの通常の作業には十分に近いものです。 – tchrist

3

正規表現パターン:

Pattern.compile("^.{0,50}$")

両方合成:

Pattern.compile("^[A-Z\\d.]{0,50}$")

Pattern.compile("^[A-Z\\d.]*$")

は、文字列の長さをチェックします私があなたの場合は長さをチェックするために正規表現を使用しませんが、文字列に.length()と呼んでください。

0

これは、文字列の場合はtrueを返します。数字、大文字、またはドットの50文字のみが含まれます。

string.matches("[0-9A-Z\\.]{0,50}") 
+0

あなたの正規表現の終わりでは、*部分文字列*があなたの正規表現のパターンと一致する文字列がほしいと言っています。 – JayC

+0

いいえ、それは必要ではありません。サブストリング( "CAPITAL")が一致しても、このステートメントは "nonCAPITAL"に対してfalseを返します。 –

+0

シュート、申し訳ありません。言語にもう少し注意を払う必要がありました(Java、私はしばらくの間混乱していません)。私が知っているほとんどの言語は、正規表現に対して "テスト"することができますが、それはもちろん、あなたをめちゃくちゃにする部分文字列と一致する可能性があります。これは、Java.matches関数の場合とは異なります。 – JayC

1

Thisウェブサイトはそれを追加し、いくつかの定義済みの文字クラスで、単純な構文に来るとき、Javaで

+2

@anubhava: "この正規表現をどのように構築でき、いくつかのオンラインツール**を作成する方法についてのガイドはありますか?" – Guvante

+0

@Guante:正規表現のリファレンスマニュアルとしてhttp://www.regular-expressions.infoを使用することができます。 – anubhava

+0

@anubhava:「答えではなく、ただのコメント」であり、彼は彼の質問の1つに答えてくれるオンラインツールにリンクしています。 – Guvante

1

正規表現は他の言語と多くの共通点を持っている建物とテストと正規表現のために本当に便利ですあなたがPerlで見つけた以上のものがあります。 Java API docs on Patternは、サポートされているさまざまなパターンを示しています。 Javaでregexesを紹介するのはhttp://www.regular-expressions.info/java.htmlです。

グーグルでは、入力文字列に対してJavaの正規表現をテストするためのツールがオンラインで数多く公開されていることを示しています。 Here is one

興味のある入力の種類を確認するには、次の正規表現は動作するはずです:

内訳

^[A-Z0-9.]{,50}$

、これは言っている:

^:開始からのマッチングを開始します入力;

[]をスキップする最初の文字(複数可)を許可しない:この範囲

A-Z内の文字のいずれかに一致:範囲内、-は包括最初と最後の文字の間のすべての値を受け入れることを意味し、この場合、AからZまでのすべての文字です。

0-9:前の範囲にすべての桁

.を追加します。期間は、正規表現で特別ですが、すべての特殊文字は([])文字クラス内で再び

{,50}シンプルになる:必要(または0)定義された文字クラスの最大50文字に一致します。

$:一致が入力の最後に到達する必要があります。最後の文字(複数可)は、応答あなたが使用できるツールには

+0

'$'は、行終端記号の場合に最後の文字をスキップすることを許可します。 '\ z'は入力の終わりと一致します。 –

関連する問題