我想匹配使用java正則表達式的特定字符串模式。正則表達式相同的字符串匹配
我想找到的圖案像
{some stuff|other stuff}
我現在用的是以下模式:
"(\\{#" + key + ")(\\|.*)[^\\}]"
問題是,當我有類似:
text... {some stuff|other stuff} {some stuff|other stuff} more text
我匹配{some stuff|other stuff} {some stuff|other stuff}
而不是2次{some stuff | other stuff}。
我認爲這是與正則表達式回溯有關,但我不知道如何解決它。
任何想法?
我的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");
}
什麼關於第二個模式已經匹配分裂? –
什麼是鑰匙?你需要什麼確切的輸出(比如說,「{some stuff | other stuff}」)?請展示真實的例子。 –
這個問題目前還不清楚。請提供一些您想要匹配的字符串以及預期的匹配組的具體示例。 –