我的字符串是:
Frequency/FA ID VerifiedFA0 FAID5(125)/FA1 FAID7(175)/FA2 FAID1(476)
我正在尝试创建的正则表达式应该提取这些数字:
125, 175, 476
我是通过查看this example来做到的,但必须有一个更好的。
myString.replaceAll(".+\\(([0-9]+)\\).+\\(([0-9]+)\\).+\\(([0-9]+)\\).*","$1,$2,$3")
答案 0 :(得分:3)
您可以使用Pattern
和Matcher
类来提取您需要的内容,而不是replacing
您不需要的所有内容。
在括号中提取数字的正则表达式模式是: -
\(\d+\)
+
量词用于匹配1 or more
个数字的重复。如果您只想匹配3
个数字,那么您可以将{3}
量词用于\d
: - \(\d{3}\)
。
您可以使用Matcher#find()
方法应用此正则表达式模式以获取该字符串中的所有数字。我将实施任务留给你。
答案 1 :(得分:3)
检查出来:
String s = "Frequency/FA ID VerifiedFA0 FAID5(125)/FA1 FAID7(175)/FA2 FAID1(476)";
Pattern patt = Pattern.compile("\\(\\d+\\)");
Matcher match = patt.matcher(s);
while(match.find()){
System.out.println(match.group());
}
答案 2 :(得分:1)