当前位置:  开发笔记 > 开发工具 > 正文

如何检查数字的整个现有正则表达式?

如何解决《如何检查数字的整个现有正则表达式?》经验,为你挑选了2个好方法。

我写了一个正则表达式如下:

"^[\+]{0,1}([\#]|[\*]|[\d]){1,15}$"

总之,这与可选的"+"符号匹配,后跟最多15个字符,可能是"#","*"或数字.

但是,这意味着'+#'将匹配,这不是一个有效的结果,因为我总是需要至少一个数字.

典型的有效匹配可能是:

+1234
445678999
+#7897897
+345764756#775

所以,鉴于我已经为这些匹配制作了一个有效的RegEx,我想优雅的解决方案是使用这个正则表达式并添加一些特殊标准来全局检查结果中的数字或以某种方式禁止任何没有的数据最少一位数.

我如何检查该数字?



1> Stephan..:

试试这个正则表达式(我最初的想法):

^(?=.*[0-9])[+]?([#*\d]{1,15})$

正则表达式可视化

您可以替换[0-9]使用\d.

DEMO:

https://regex101.com/r/bM9oE6/3



2> Giuseppe Ric..:

此解决方案需要字符串中的至少一个数字,使用前瞻(该(?=...)部分):

^(?=.*\d)\+?[#*\d]{1,15}$

通古斯

^               # Start of the string (or line with m/multiline flag)             
  (?=.*\d)      # Lookahead that checks for at least one digit in the match
  \+?           # An optional literal plus '+'
  [#*\d]{1,15}  # one to fifteen of literal '#' or '*' or digit (\d is [0-9])
$               # End of the string (line with m/multiline flag)

在线演示

正则表达式图形模式(每个人都喜欢它)

正则表达式可视化

注意:正如你在演示中看到的那样避免组合就像+*+或者#*,你得到它......

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有