以下の文字列から、私は必要なNUM = 12122
だけCheckFrom = 02453226170
です
String s="shopNumber = \"shop 1\", NUM = \"12122\", Reference = \"NUM1\", CheckFrom = \"02453226170\""
Stringクラスの正規表現とreplaceall関数を使用してこれを行うにはどうすればよいですか?
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
。