gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:15:40 29 4
gpt4 key购买 nike

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

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

总之,这匹配一个可选的“+”号,后跟最多 15 个字符,可以是“#”、“*”或数字。

但是,这意味着“+#”会匹配,这不是有效结果,因为我总是至少需要一个数字。

典型的有效匹配可能是:

+1234
445678999
+#7897897
+345764756#775

因此,考虑到我已经为这些匹配制作了一个有效的正则表达式,我想优雅的解决方案是使用这个正则表达式并添加一些特殊的标准来全局检查结果中的数字或者以某种方式禁止任何不符合的东西'至少有一位数字。

我如何检查该数字?

最佳答案

此解决方案要求字符串中至少有一位数字,使用前瞻((?=...) 部分):

^(?=.*\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)

Online Demo

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

Regular expression visualization

注意:如您在演示中所见,还应避免像 +*+#* 这样的组合,您明白了……

关于regex - 如何检查一个数字的整个现有正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34330560/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com