デリミタ間で文字列を取得および削除する方法についていくつかの例を見てきました。しかし、私は非常に単純なテストケースを作成し、さまざまな例に基づいて間違った出力を得ています。私が探している文字列の代わりに検索元として使用したい文字列を返すのはなぜですか?予期しない正規表現の結果
String temp = "56.0 F (13.3C)";
String exp = "((^))";
String p = temp.replace(exp, "");
System.out.println("p=" + p);
私は出力として文字列56.0F (13.3C)
を取得します。
私は56.0F
を返すことを期待しています。
Pattern pattern = Pattern.compile(exp);
Matcher matcher = pattern.matcher(temp);
if (matcher.find()) {
System.out.println(matcher.groupCount());
for (int i=0; i<=matcher.groupCount(); i++) {
String groupStr = matcher.group(i);
System.out.println(groupStr);
}
}
2は私が間違ってやっているのと、コンソールに
任意のアイデアを印刷したものです:
は、私はまた、パターンマッチを使用しようとしましたか?私はこれを数時間見てきました。ありがとう!
ありがとうalex、これは今では完全に動作します(ただし、左右の括弧の前に\\エスケープシーケンスを使用しなければなりませんでした:\\(。*?\\)。 –