2 つの特定の文字/単語の間のスペースを削除する必要がある文字列があります。例を次に示します。
String Test = " testcase s(this_one_has_no_space) and s(this_one_has_ space )"
後続のすべての 's(' と ')' の間のスペースを削除したい。どうやってやるの?
String test = " testcase s(this_one_has_no_space) and s(this_one_has_ space )";
Pattern p = Pattern.compile("s\\([^\\)]*\\s+[^\\)]*\\)");
Matcher m = p.matcher(test);
while (m.find()) {
String temp = m.group();
test = test.replace(temp, temp.replaceAll("\\s", ""));
}
System.out.println(test);
これを試して、問題が解決できるかどうかを確認してください。
次に、内側の括弧をキャプチャして、その文字列のスペースを置き換えてから
、文字列を元に戻します.Javaがコールバックを実行できる場合、これは問題ありません..
// s\\(([^()\\t\\ ]*[\\t\\ ][^()]*)\\)
s
\(
( # (1 start)
[^()\t\ ]*
[\t\ ]
[^()]*
) # (1 end)
\)