我想提取所有 用 大括号括起来的 单词 ,所以我有一个这样的表达式
foo {bar} moo {mar}
匹配的字符串可能包含任意多个这样的单词,但是我开始认为我正在以错误的方式解决此问题。
我的尝试
而且我尝试将花括号这些词提取为组,以便可以使用每一个匹配项。所以,我做了一个正则表达式:
String rx = ".*\\{({GROUP}\\w+)\\}.*";
注意:我使用的是JRegex语法,因此我需要避免掉一些curl。
结果
我得到的结果是一个(虽然是正确的)比赛bar
,而我希望有两个比赛bar
和mar
。我误解了什么,如何纠正?我可能需要为该.
零件使用其他一些量词,但我希望您也能对此提供帮助。
提前谢谢了!
您的正则表达式.*\{({GROUP}\w+)\}.*
不起作用,因为它一次匹配了所有输入字符串:
.*
火柴 foo
\{({GROUP}\w+)\}
火柴 {bar}
.*
火柴 moo {mar}
您应该使用这样的东西:
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("\\{([^}]*)\\}");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find())
{
matchList.add(regexMatcher.group());
}
正则表达式不处理内部花括号
有以下语句 想实现的功能如下: 当输入title时,正则表达式可以把title作为关键字提取出来 当输入title="beijing" && body时,正则表达式可以把body作为关键字提取出来 当输入title="beijing" && body="login" && (title="a" && body)时,正则表达式可以把小括号中body作为关键字提取出来 上述功能主要是把=号左值(关键词
问题内容: 输入线在下面 你能帮我写一个Java正则表达式来提取 从上方输入线? 问题答案: 更加简洁:
我需要通过不在括号中的管道拆分文本。这是示例文本 我在这里找到了这个/\ |(?![^{]*})/g:regex,提取字符串,不要在两个括号之间 现在当我想用管子分割这部分字符串时 它还选择杰森、玛丽亚和圣诞老人之间的管道,因为它们后面有一个开口支架。如果正则表达式不在任何括号中,如何将其更改为仅匹配管道。 测试字符串: 应该返回 . 应该返回
正如标题所说,以下是一个输入示例: 当然,匹配的字符串将通过递归进行处理。 我希望第一个递归匹配: 之后的过程不用说。。。
问题内容: 我试图从圆括号中提取一个字符串。 比方说,我有,我只想输出字符串。 我找到了此链接和此正则表达式: 但是,我无法弄清楚如何获得想要的结果。 任何帮助,将不胜感激。谢谢! 问题答案: String str=”John Doe (123456789)”; System.out.println(str.substring(str.indexOf(“(“)+1,str.indexOf(“)”)
问题内容: 匹配字符串中的’(’的正则表达式是什么? 以下是场景: 我有一串 我想使用正则表达式拆分字符串。为此,我正在使用 但是我收到以下异常。 转义似乎不起作用。 问题答案: 两种选择: 首先,你可以使用转义 回 斜线- 另外,由于它是单个字符,因此您可以将其放入不需要转义的字符类中-