java regexを使用して特定の文字列パターンと一致させようとしています。同じ行のRegexの同一文字列
私は次のパターンを使用しています
{some stuff|other stuff}
のようなパターンを見つけたい:
text... {some stuff|other stuff} {some stuff|other stuff} more text
私は一致しています:
"(\\{#" + key + ")(\\|.*)[^\\}]"
問題は、私のようなものを持っている場合ということです{some stuff|other stuff} {some stuff|other stuff}
、{some stuff | other stuff}の2回の出現ではありません。
私はこれが何とか正規表現のバックトラックに関係していると思いますが、私はそれを回避する方法について考えていません。
アイデア?
私のJavaコード:
Pattern pattern = Pattern.compile("(\\{#" + key + ")(\\|.*)[^\\}]");
Matcher m = pattern.matcher(string);
while (m.find()) {
logger.info(m.group(0));
//logger.warn("Parameter " + key + " is not found");
// throw new Exception("Parameter " + key + " is not found");
}
マッチが分割さ持っている第二のパターンについて何? –
'key'とは何ですか?正確な出力は何でしょうか(例えば、 '{some stuff | other stuff}')?実際の例を示してください。 –
この質問は不明です。一致させる文字列の具体的な例と期待されるマッチグループを入力してください。 –