2016-12-22 6 views
-1

私は基本的な質問のように思えるstackoverflowをすべて検索しましたが、何も私のために働いていません。サンプルデータ:この状態で他に if(Pattern.matches("-?[.]?[0-9]+?", currentDisplayText))すべてがこの中に正常に動作しますが、それも小数を認めていない、私はまたif(Pattern.matches("-?\\.?[0-9]+", currentDisplayText))を使用してみましたが、まだ与えられた数字に10進数があるかどうかを調べるjava regexでパターンを構築する方法

編集に動作しない他の場合、私は実装しようとしています私は23、-23,23.1、-23.1にマッチしようとしています。23.1や-23.1のような10進数を除いたすべての文字で動作しますが、問題は正規表現パターンで10進数を入力する方法です。

+1

一致するサンプルデータを表示できますか? –

+0

http://www.regexplanet.com/advanced/java/index.htmlによれば、 ' - ?。[0-9] +'は一致しますが、数字は1組しかないので、.3と一致します0.3 – John3136

+0

@ John3136あなたは0.3 –

答えて

1

これはあなたが探しているようです:"-?[0-9]+(\\.[0-9]+)?"

  1. オプション ' - '
  2. 1桁以上
  3. オプションのa。 1桁以上続く
+0

@SebastianProske Trueと一致するパターンを教えてくれますか?私はhttp://www.regexplanet.com/advanced/java/index.htmlをあまりにも信頼していました。もちろん、文字列 "。"正規表現 "と一致します。" ;-)編集待ちです。 – John3136

+0

これは私が「 - ?\ d +(\。\ d)* 'あなたの助けに感謝したものです! –

+0

@SakshamShridhar "\"をJava文字列で使用する場合は、それらをエスケープしてください。また、 "*"は0以上の一致を意味するので、-1.2.3.4はあなたの正規表現にマッチします(それはおそらくないはずです) – John3136

関連する問題