-2

以下の文字列から、私は必要なNUM = 12122だけCheckFrom = 02453226170です

String s="shopNumber = \"shop 1\", NUM = \"12122\", Reference = \"NUM1\", CheckFrom = \"02453226170\""

Stringクラスの正規表現とreplaceall関数を使用してこれを行うにはどうすればよいですか?

4

1 に答える 1

2

Matcher.findを使用すると、このタスクで名前と値のペアを簡単に抽出できます。基本的にあなたはパターンを探していますword = "number"

Matcher m = Pattern.compile("(\\w+) = \"(\\d+)\"").matcher(s);
StringBuilder builder = new StringBuilder();
while (m.find()) {
   builder.append(m.group(1));
   builder.append("=");
   builder.append(m.group(2));
   builder.append(" ");
}

m.group(1)最初にキャプチャされたグループに関連します(つまり、単語からの一致\w+

Builderに含まれるもの:

NUM=12122 CheckFrom=02453226170

更新: コメントの質問から、代わりに使用できます:

Pattern.compile("(NUM = \"\\d+\").*( CheckFrom = \"\\d+\")")

2つのグループを一緒に追加して、を取得しますString

于 2012-12-30T15:47:59.523 に答える