我无法构建正确的正则表达式。Java - 正则表达式 - 允许0-9,句点,繁殖
有效:
- 1.1.1
- 1.1-1
- 1-1.1
- 1-1-1
- 1-1
- 1.1
无效:
- 1..1
- 1.
- 1--1
- 1-
到目前为止,我得到了
^[0-9]+[0-9.-][0-9]+$
感谢您的帮助
我无法构建正确的正则表达式。Java - 正则表达式 - 允许0-9,句点,繁殖
有效:
无效:
到目前为止,我得到了
^[0-9]+[0-9.-][0-9]+$
感谢您的帮助
^[0-9]+[0-9.-][0-9]+$
模式匹配为与1个或多个数字([0-9]+
),一个数字或.
或-
([0-9.-]
)以及一个或多个数字([0-9]+
)完全匹配。它可以匹配连续的-
或/和.
内的一串数字。
您可以使用
^[0-9]+(?:[.-][0-9]+)*$
如果在.matches()
方法使用它时,^
和$
锚可以省略。
详细:
^
- 字符串的开始[0-9]+
- 1以上(+
量词匹配1次或多次出现,如果你只需要匹配一个单次发生删除+
量词)数字(?:[.-][0-9]+)*
- 零或更多连续的sequ的
[.-]
分配办法 - 一个.
或-
[0-9]+
- 1或多个数字(同样的量词音符如上适用)$
- 字符串的结尾。在这里,这应该做的:
^[0-9]([.-][0-9])*$
一个数字,后跟零所或多个出现的(点/减位)其他答案
稍有不同。 你没有表明一个孤独的数字的情况下,无期和连字符:
而且这正则表达式只允许单个数字(例如2.2.2,不22.22.22)
^\d([.-]\d)+$
两个
^[0-9]([.-][0-9])*$
和
^[0-9]+(?:[.-][0-9]+)*$
作品。谢谢
尝试像这样:'([0-9] + [.-])* [0-9] [.-]?'(Methods' matches()'do full match,'^ $'are对他们来说不是必需的。) –
举例是不够的。你必须指定你的规则。 – EJP
@EJP他放下了他正在使用的正则表达式,这对他不起作用。所有这些都很好地格式化。你还有什么期望呢?我认为这对于新手来说是个不错的问题。 – GhostCat