2016-10-20 12 views
0

私のコードに次の文字列パターンをマッチさせたいと思います。文字列値を以下のように固定されている:Java正規表現のパターンマッチング

630512-07-5847

Pattern p = Pattern.compile("(\\d{6,6})-(\\d{2,2})-(\\d{4,4})"); 

私はそれがそのような「630512312-07-5847」などのより多数を有する場合、しかし、上記のコードを試みた、それまだ

答えて

2

は試合が始まると、文字列全体で終わるならば、これは確認します

^\\d{6}-\\d{2}-\\d{4}$ 

を試しtrueを返し

はそう

  • 630512-07-5847 - OK
  • 630512-07-58472 -
  • 1630512-07-5847 OKではない -
+0

ありがとう、悪い質問falseです。 – hiboss

+0

たとえば、 System.out.println(m.find()); return m.find(); – hiboss

+0

最初の 'find'は' true'を返し、2回目は 'false'を返します。 –

1

OKではない、あなたは実際に試してみましたしていますか?

public class Test { 
    public static void main(String[] args) { 
     System.out.println("630512312-07-5847".matches("(\\d{6,6})-(\\d{2,2})-(\\d{4,4})")); 
    } 
} 

結果はあなたの方法は、しかし、働く私はMatcher.findを使用するときに()を2回、それは私に二つの異なる結果を返す、

+0

あなたも答えがうまくいきます。私は文字列マッチングのためのパターンとマッチャのライブラリを使用しています。ライブラリなしではこのようなメソッドの動作を知らなかった – hiboss