1

入力文字列のパターンをこの種の文字列と一致させる方法を見つけようとしています:

「xyz 123456789」

一般に、最初の 3 文字 (大文字または小文字の両方) と最後の 9 文字 (任意の組み合わせ) を含む入力があるたびに、入力文字列を受け入れる必要があります。

したがって、i/p string = "Abc 234646593" がある場合、一致するはずです (1 つまたは 2 つの空白を使用できます)。また、「Abc」と「234646593」を別々の文字列に格納する必要があると便利です。

多くの正規表現を見てきましたが、完全には理解していません。

4

1 に答える 1

4

動作する Java ソリューションは次のとおりです。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {
  public static void main(String[] args) {
    String input = "Abc 234646593";

    // you could use \\s+ rather than \\s{1,2} if you only care that
    // at least one whitespace char occurs
    Pattern p = Pattern.compile("([a-zA-Z]{3})\\s{1,2}([0-9]{9})");
    Matcher m = p.matcher(input);
    String firstPart = null;
    String secondPart = null;
    if (m.matches()) {
      firstPart = m.group(1);  // grab first remembered match ([a-zA-Z]{3})
      secondPart = m.group(2); // grab second remembered match ([0-9]{9})
      System.out.println("First part: " + firstPart);
      System.out.println("Second part: " + secondPart);
    }
  }
}

プリントアウト:

前半:Abc
第二部: 234646593
于 2012-06-24T04:29:16.223 に答える