我想用Java解析一系列数据(例如100-2000)。这段代码是否正确:
String patternStr = "^(\\\\d+)-(\\\\d+)$";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
if(matcher.find()){
// Doing some parser
}
答案 0 :(得分:1)
不,你是双倍(好吧,四倍) - 数字。
应该是:"^(\\d+)-(\\d+)$"
。
含义:
^
(\\d+)
-
(\\d+)
$
备注强>
这些组对反向引用很有用。在这里你没有使用,所以你可以围绕\\d+
表达式抛弃括号。
您正在解析此示例中范围的表示。
如果你想要一个实际的范围类,你可以使用[min-max]
成语,其中“min”和“max”是数字,例如[0-9]
。
正如安德烈亚斯所提到的,如果你想匹配的话,你可以使用String.matches
而不是Pattern
- Matcher
成语和^
和$
全部投入。