我有这个长串:
String responseData = "fker.phone.bash,0,0,0"
+ "fker.phone.bash,0,0,0"
+ "fker.phone.bash,2,0,0";
我想要做的是提取此字符串中的整数。我已成功完成了以下代码:
String pattern = "(\\d+)";
// this pattern finds EVERY integer. I only want the integers after the comma
Pattern pr = Pattern.compile(pattern);
Matcher match = pr.matcher(responseData);
while (match.find()) {
System.out.println(match.group());
}
到目前为止它正在运行,但我想让我的正则表达式更安全,因为我得到的响应数据是动态的。有时我可能会在字符串中间得到一个整数,但我只想要最后一个整数,这意味着在逗号之后。
我知道开头的正则表达式是^,我必须把我的逗号作为一个参数,但我不知道如何把它拼凑起来,这就是我寻求帮助的原因。谢谢。
答案 0 :(得分:2)
String pattern = "(,)(\\d)+";
然后得到第二组。
答案 1 :(得分:2)
您可以使用positive lookbehind:
class TouchViewController: UIViewController, UIGestureRecognizerDelegate{...}
您不需要提取任何组来使用该解决方案,因为lookbehind是zero-length assertion。
答案 2 :(得分:1)
您只需使用以下内容,然后按match.group(1)
:
String pattern = ",(\\d+)";
请参阅working demo
您还可以使用字边界来获取独立的数字:
String pattern = "\\b(\\d+)\\b";