我想编译与非负整数匹配的Pattern
。它应查找一个或多个连续数字的序列,该序列前没有另一个数字或负号。我已经能够编译以下内容:
Pattern digit = Pattern.compile("\\d"); //looks for single digits
但是假设我声明以下内容:
String a = "90 210";
String b = "-90 210";
String c = "z90p210";
String d = "pz-90210";
digit
将在所有这四个中匹配"9"
,"0"
,"2"
,"1"
和"0"
。我对Pattern
与"90"
中的"210"
和a
,"210"
中的b
,"90"
中的"210"
和c
匹配的d
感兴趣,而在。有没有办法忽略以负号或其他数字开头的数字序列?
最佳答案
您可以使用否定的后向断言:(?<!...)
(不带前缀)
Pattern digit = Pattern.compile("(?<![\\d-])\\d+");