0

我需要获取以下数字序列的正则表达式模式:

X.XXX.XXX-X 

每一个X都是一个数字。

我已经尝试过:

pattern: `partnerNumberOnFirstPage = "*.*.*-*"`

if (stringContent.matches(partnerNumberOnFirstPage)){
    return true;
} else {
    return false;
}

我怎样才能做到这一点?我是否正确实施它?我不想使用*,因为我需要确切的数字数量。

4

3 回答 3

0

很多方法:

\d\.\d{3}\.\d{3}-\d

或者

\d(?:\.\d{3}){2}-\d
于 2013-11-06T23:44:26.840 回答
0

怎么样:

^\d\.\d\d\d\.\d\d\d-\d$

我不确定,但我认为你必须在 java 中双重转义,所以:

^\\d\\.\\d{3}\\.\\d{3}-\\d$
于 2013-11-06T10:15:47.607 回答
0
^\\d\\.\\d{3}\\.\\d{3}-\\d$
  • ^匹配字符串的开头
  • $匹配字符串的结尾
  • \\ java 需要双重转义(对于 \d 和 .)
  • \d匹配任何单个数字 (0-9)
  • {X}表示前面的模式块必须出现 X 次,如果你很灵活,{X,Y} 也可以使用

是的,您的实现看起来很棒!

另请注意,如果您需要匹配字符串中的任何位置,您可以删除开始/结束标签。

于 2013-11-06T23:57:30.980 回答