我想匹配使用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}”)?请展示真实的例子。 –
这个问题目前还不清楚。请提供一些您想要匹配的字符串以及预期的匹配组的具体示例。 –