2

文字列でコンパイルするには、複数のパターンを定義する必要があります。実行後、パターンで同じ形式の文字列が表示されます。ここにコードがあります:

     String line = "This order was places for QT 30.00$ !OK ? ";

  Pattern[] patterns = new Pattern[]{
        Pattern.compile("\\d+[.,]\\d+.[$] ", Pattern.CASE_INSENSITIVE),
        Pattern.compile("\\d:\\d\\d",Pattern.CASE_INSENSITIVE | Pattern.MULTILINE)     
        };      // Create a Pattern object

  // Now create matcher object.
      for (Pattern scriptPattern : patterns){
          Matcher m = scriptPattern.matcher(line);
 System.out.println(m.group());
         }      }
4

2 に答える 2

0

ここで編集する前に元の質問を使用すると、それを機能させるためのいくつかの調整が行われます。

public static void main(String[] args) {
    // String to be scanned to find the pattern.
    String line = "This order was places for QT 30.00$ !OK ? 2:37 ";

    String pattern = "(\\d+[.,]\\d+.[$])(.*)(\\d:\\d\\d)";
    // Create a Pattern object
    Pattern r = Pattern.compile(pattern);

    // Now create matcher object.
    Matcher m = r.matcher(line);
    if (m.find()) {
        System.out.println("Found value: " + m.group(1) + " with time: " + m.group(3));
    }  
}

出力:

Found value: 30.00$ with time: 2:37
于 2013-05-04T07:06:05.943 に答える
0

これはあなたが探しているものですか

private static Pattern[] patterns = new Pattern[]{
    Pattern.compile("Your pattern ", Pattern.CASE_INSENSITIVE),
    Pattern.compile("your pattern",Pattern.CASE_INSENSITIVE | Pattern.MULTILINE)     
    };

これを使用して、パターンを調べて一致させることができます

 for (Pattern scriptPattern : patterns){
                    Matcher m = scriptPattern.matcher(line)
                     while (m.find()) {
                 String d = m.group();
                 if(d != null) {
                     System.out.print(d);

                 }

            }
    }
于 2013-05-04T06:26:04.490 に答える