Regex 带或不带冒号或小数点的验证数字的正则表达式

Regex 带或不带冒号或小数点的验证数字的正则表达式,regex,Regex,我想写一个只允许数字和小数点或冒号(:)而不允许小数点的正则表达式。贝娄就是一个例子 有效: 87887 8787.878 8878:98 无效 abc 989ab 8987.89:87 我要验证正则表达式^[0-9:]+$,但它在小数点后接受冒号,这意味着如果我写898:89,它将显示为有效 您能帮我找到一个解决方案吗?您可以使用: ^\d+[.:]?\d+$ 更新: 87887 8787.878 8878:98 如果还要匹配.1,则应使用: ^\d*[.:]?\d+$ ^\d+[

我想写一个只允许数字和小数点或冒号(:)而不允许小数点的正则表达式。贝娄就是一个例子

有效:

87887
8787.878
8878:98
无效

abc
989ab
8987.89:87
我要验证正则表达式
^[0-9:]+$
,但它在小数点
后接受冒号,这意味着如果我写
898:89
,它将显示为有效

您能帮我找到一个解决方案吗?您可以使用:

^\d+[.:]?\d+$

更新:

87887
8787.878
8878:98
如果还要匹配
.1
,则应使用:

^\d*[.:]?\d+$
^\d+[.:]?\d*$
^(?=.*\d)\d*[.:]?\d*$
如果您还想匹配
1.
您应该使用:

^\d*[.:]?\d+$
^\d+[.:]?\d*$
^(?=.*\d)\d*[.:]?\d*$
如果要匹配所有组合,如
.1
1.
12.34
,应使用:

^\d*[.:]?\d+$
^\d+[.:]?\d*$
^(?=.*\d)\d*[.:]?\d*$

这将起作用:

^(?:[0-9]+(?:[.:][0-9]+)?|[.:][0-9]+)$
  • ^
    -开始字符串锚定
  • (?:
    -启动非捕获组,以便开始和结束锚定是全局的,而不是成为or子句的一部分
  • [0-9]+
    -允许数字
  • (?:[.:][0-9]+)?
    -可以选择允许冒号或句点,必须后跟至少一位数字
  • |
    -或
  • [.:][0-9]+
    -冒号或句号后跟数字
  • -关闭捕获组
  • $
    -结束字符串锚定

请尝试下面的代码。演示是


看起来您希望创建一个正则表达式,但不知道从哪里开始。请查看资源,它有很多提示。另外,有关一些基本的正则表达式信息,请参阅post。一旦您准备好一些表达式,但解决方案仍然存在问题,请使用最新的详细信息编辑问题,我们将很乐意帮助您解决问题。向我们展示您的尝试。如何:
^\d+[。:]?\d+$
那么
.54745
是否有效?此正则表达式要求至少两位数字。第一个
\d+
可能应该是“\d*”,以匹配
.123
。请尝试我的解决方案。它并没有要求至少有两个digits@Error-语法悔恨刚刚看到了你的评论,你建议的更改将完全修复这个正则表达式,以解释所有情况。现在要是托托能修改他们的答案,我就可以投票了。老兄,我真是烂透了:P好答案。