我正在尝试从圆括号中提取字符串。
假设,我有John Doe (123456789)
,我只想输出字符串123456789
。
我找到了这个链接和这个正则表达式:
/\(([^)]+)\)/g
然而,我没有找到如何获得所需的结果。
任何帮助将不胜感激。谢谢!
String str="John Doe (123456789)";
System.out.println(str.substring(str.indexOf("(")+1,str.indexOf(")")));
在这里,我正在执行字符串操作。对于正则表达式不是很熟悉。
这对我有效:
@Test
public void myTest() {
String test = "test (mytest)";
Pattern p = Pattern.compile("\\((.*?)\\)");
Matcher m = p.matcher(test);
while(m.find()) {
assertEquals("mytest", m.group(1));
}
}
String pattern = "\\(([^()]+)\\)";
.group(1)
中。String str = "John Doe (123456789)";
String rx = "\\(([^()]+)\\)";
Pattern ptrn = Pattern.compile(rx);
Matcher m = ptrn.matcher(str);
while (m.find()) {
System.out.println(m.group(1));
}
请查看IDEONE演示
你需要在正则表达式中转义括号:
String in = "John Doe (123456789)";
Pattern p = Pattern.compile("\\((\\d*)\\)");
Matcher m = p.matcher(in);
while (m.find()) {
System.out.println(m.group(1));
}