2011-03-16 14 views
19

0から9までの数字、コンマ、およびセミコロンのみを含む文字列と一致する正規表現は何ですか?私はJavaのようにそれを使用するために探しています:正規表現に一致する数字、カンマ、セミコロン?

​​

私は正規表現を初めて使っています。

+0

さて、あなたが近くにいる - あなたは1-9'はありません 'どう思いますか? –

+0

'1-9'はおそらく0〜9だけでなく、' 0-9'となります。それ以外は... –

+0

うわあ、ありがとう。あまりにも簡単だったはずです。 –

答えて

42

あなたはほとんどそれを持っています、あなたは0を残して、量限定子を忘れました。

word.matches("^[0-9,;]+$") 
+10

Bah、17秒:D – Shaded

4

word.matches("^[0-9,;]+$");

0
boolean foundMatch = Pattern.matches("[0-9,;]+", "131;23,87"); 
+0

文字列に一致する文字列もあります... "131; 23,87" .matches( "[0-9、;] +")はちょっとうまく動作します... – Jean

2

word.matches("^[0-9,;]+$");を試してみてください、あなたはあなたがそこに道の90%はほとんどあり

20

ました。カラット^を皮切り

^[0-9,;]+$

は、行の先頭を示します。 [

文字9を通して

0-9が示す文字0を設定示し、カンマ,コンマを示し、セミコロンは;を示しています。

終了記号]は、文字セットの最後を示します。

プラスの+は、「前のアイテム」の1つ以上が存在しなければならないことを示します。この場合は、以前に宣言された文字セットに1つ以上の文字が含まれていなければなりません。

ドル$は、行末を示します。

+0

^$ canだと思いますまた、入力の最初と最後(長文の長い文字列としてのテキストファイル全体)を意味し、必ずしも1行である必要はありません。しかし、この機能は正規表現の実装に依存します。 –

+0

「^ $」は入力を意味する正規表現言語を作成することに決めた人は、なぜドットをつけても構いません。スター '*'演算子?私は誰かがそれをするかもしれないことを疑うことはありませんが、それは基本的に空の行(それはダムです)に一致することができないことを意味します。 –

+0

[このページを参照](http://www.regular-expressions.info/anchors。html) "したがって、このチュートリアルで説明しているすべての正規表現エンジンでは、両方のアンカーの意味を拡張するオプションがあります。^は文字列の先頭に一致し、$は文字列の最後に一致します。 これは、行の先頭と末尾に一致させるオプションですが、このオプションはお勧めできません。 –

1

現在の正規表現は1文字しか一致しません。複数の文字に一致するには*(空の文字列を含む)または+(少なくとも1つ)のいずれかが必要で、数字には\ d(文字列に\\が必要)というショートカットがあります。

word.matches("^[\\d,;]+$") 

柄のドキュメントはかなり良いです:http://download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html

また、あなたは、オンラインであなたの正規表現を試すことができます。 http://www.regexplanet.com/simple/index.html

関連する問題