正则表达式+符号后跟数字

时间:2016-08-06 19:56:22

标签: java regex expression

您好我想在Java中找到像“+19”这样的字符串

所以一个+符号后跟无数的数字。

我该怎么做?

尝试“+ [0123456789]” 和“\ + [0123456789]”

谢谢你:)

2 个答案:

答案 0 :(得分:1)

这是你想要使用的正则表达式:

\\+\\d+

这里使用了两种加号。第一个是使用两个反斜杠转义的,因为它被视为文字。第二个意味着匹配1次或多次(即匹配任何数字一次或多次)。

<强>代码:

String input = "+19";
if (input.matches("\\+\\d+")) {
    System.out.println("input string matches");
}

答案 1 :(得分:1)

是的,要匹配一个加号,您需要使用Java使用的C字符串文字中的两个反斜杠来转义它。文字加上需要转义或放入字符类[+]。如果您只使用加号,它将成为一个量词,与前一个符号或组匹配一次或多次。

另请注意,如果将\d标记传递给Pattern.UNICODE_CHARACTER_CLASS(或嵌入的Pattern.compile标记,则(?U)简写数字类可以匹配多个ASCII数字模式的开始)。建议使用明确的模式,以防稍后由不同的开发人员维护或增强/调整代码。

如果可能的话,大多数人更喜欢没有逃避反斜杠的模式,因为这样可以避免像你所遇到的问题。

这是正则表达式的一个版本,不需要任何转义:

"[+][0-9]+"

此外,加号量词与无数个数字不匹配,只有MAX_UINT次数。