我的字符串是:
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")
看一下这个:
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());
}
而不是replacing
你不需要的一切,你可以使用Pattern
和Matcher
类来提取你需要的东西。
在括号之间提取数字的正则表达式模式将是: -
\(\d+\)
+
量词用于匹配1 or more
重复的数字。如果你想只匹配3
数字,那么你可以使用{3}
量词与\d
: - \(\d{3}\)
。
您可以使用Matcher#find()
方法应用此正则表达式模式以获取该字符串中的所有数字。我将实施任务留给您。