使用Regex过滤并查找String中的整数

时间:2015-05-06 17:57:18

标签: java regex

我有这个长串:

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());

        }

到目前为止它正在运行,但我想让我的正则表达式更安全,因为我得到的响应数据是动态的。有时我可能会在字符串中间得到一个整数,但我只想要最后一个整数,这意味着在逗号之后。

我知道开头的正则表达式是^,我必须把我的逗号作为一个参数,但我不知道如何把它拼凑起来,这就是我寻求帮助的原因。谢谢。

3 个答案:

答案 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";