-1

文字列はフォーマットされます[( 1.0N)-195( 1.0E)-195(28)-769.7(NESW)-1080.8(U)-617.9(43-047-30127)]

文字列に含まれているかどうかを確認するために一致する正規表現が必要です-XXX-XXX(どこXに数字がありますか)

    Pattern p = Pattern.compile("(?=.*?(?:-[0-9][0-9][0-9]-[0-9][0-9][0-9]))");

    if(p.matcher(a).matches())

    {
        System.out.println("Matched");
    }

また、試してみましたが-[0-9][0-9][0-9]-[0-9][0-9][0-9](?=.*?-[0-9][0-9][0-9]-[0-9][0-9][0-9]) 何も機能しませんでした

4

3 に答える 3

2

サブストリングの方がはるかに簡単ですが(?:\\d{2})(-\\d{3}-\\d{5})、1つのグループとして-XXX-XXXXXと一致します。

最後の数字の3桁は間違いだったと思います。5を3に変更するだけではない場合。

于 2012-06-27T20:05:37.053 に答える
1

文字列に-3桁-3桁が含まれているかどうかを確認したい場合

 String a = "43-037-30149";
 Pattern p = Pattern.compile(".*(-[0-9]{3}-[0-9]{3})");
  if(p.matcher(a).matches())      
  {
     System.out.println("Matched");
  } 
于 2012-06-27T20:07:09.333 に答える
0

部分文字列を使用しないのはなぜですか??

String b = a.substring(2,9); 

またはこれ:

String c = a.substring(a.indexOf('-'), a.indexOf('-') + 8);

部分文字列を「のみ」にすることも、はるかに効率的です! ;)

于 2012-06-27T20:01:48.960 に答える