我想有一个正则表达式来验证一个字符串的格式是以#开头,后跟随机数(长度是无限制的),数字之间的空格也是任意的。
例如,#31 5 2 0000 12
我想出了正则表达式^[\\#][0-9]$
,但似乎是错误的。有人可以帮帮我吗?
答案 0 :(得分:2)
^[\\#][0-9]$
将匹配单个数字后跟#
符号。你需要
^#\d+(\s+\d+)*$
Posix格式也允许任何其他语言字符。
^#[[:digit:]]+([[:space:]]+[[:digit:]]+)*$
注意:这是一个有效的正则表达式。您可能需要稍微调整一下以兼容java风格。
答案 1 :(得分:2)
这是normal* (special normal*)*
模式的经典用例:
^#\d+(\s+\d+)*$
# as a Java string:
"^#\\d+(\\s+\\d+)*$"
注意:如果您使用.matches()
,这在Java中确实是错误名称,您可以删除^
和$
锚点,因为它们会自动插入。 Java中的真实模式匹配是使用.find()
完成的(String
没有,但Matcher
有
注2:这不允许尾随空格;如果可以有尾随空格,请更改为:
^#\d+(\s+\d+)*\s*$
# as a Java string:
"^#\\d+(\\s+\\d+)*\\s*$"
答案 2 :(得分:0)
如果您至少需要数字
,请检查此项^#\s*\d[\d\s]*$
答案 3 :(得分:0)
^#(\ d + \ S')* $
接受#,#15,#2 14 52 ...... 如果你想一次接受多个空间改变?用*