【发布时间】:2018-06-23 07:19:43
【问题描述】:
如何在 JAVA 中使用正则表达式获取括号之间的字符串? 例如:如果我有一个字符串 abc(de)gh 然后我想要“de”Substing。
【问题讨论】:
-
到目前为止你尝试过什么?和 PHP(你的标签)有什么联系?
-
我试过像 /(([^()]*))/i 这样的正则表达式
如何在 JAVA 中使用正则表达式获取括号之间的字符串? 例如:如果我有一个字符串 abc(de)gh 然后我想要“de”Substing。
【问题讨论】:
正则表达式:\((?<TEXT>[^()]+)\) 或 (?<=\()[^()]+(?=\))
详情:
\( 匹配字符 (
(?<TEXT>)命名捕获组文本
[^()]+匹配列表中不存在的单个字符
+ 匹配一次到无限次
\) 匹配字符)
【讨论】:
试试这个
public void test1() {
String str = "abc(de)gh(il)jk";
String regex = "\\((.*?)\\)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
【讨论】:
abd(de)fgh(ij)kl