使用正则表达式从 Java 中的圆括号内提取字符串
Extracting string from within round brackets in Java with regex
我正在尝试从圆括号中提取字符串。
比方说,我有 John Doe (123456789)
并且我只想输出字符串 123456789
。
我找到了 this link 和这个正则表达式:
/\(([^)]+)\)/g
但是,我无法弄清楚如何获得想要的结果。
如有任何帮助,我们将不胜感激。谢谢!
在Java中,您需要使用
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));
}
您需要在正则表达式中转义括号:
String in = "John Doe (123456789)";
Pattern p = Pattern.compile("\((\d*)\)");
Matcher m = p.matcher(in);
while (m.find()) {
System.out.println(m.group(1));
}
这对我有用:
@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 str="John Doe (123456789)";
System.out.println(str.substring(str.indexOf("(")+1,str.indexOf(")")));
我在这里进行字符串操作。我对正则表达式不太熟悉。
我正在尝试从圆括号中提取字符串。
比方说,我有 John Doe (123456789)
并且我只想输出字符串 123456789
。
我找到了 this link 和这个正则表达式:
/\(([^)]+)\)/g
但是,我无法弄清楚如何获得想要的结果。
如有任何帮助,我们将不胜感激。谢谢!
在Java中,您需要使用
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));
}
您需要在正则表达式中转义括号:
String in = "John Doe (123456789)";
Pattern p = Pattern.compile("\((\d*)\)");
Matcher m = p.matcher(in);
while (m.find()) {
System.out.println(m.group(1));
}
这对我有用:
@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 str="John Doe (123456789)";
System.out.println(str.substring(str.indexOf("(")+1,str.indexOf(")")));
我在这里进行字符串操作。我对正则表达式不太熟悉。