gpt4 book ai didi

java - 两个正则表达式模式,它们可以是一个吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:59:46 25 4
gpt4 key购买 nike

我有两个正则表达式用于验证科罗拉多驾照格式。

[0-9]{2}[-][0-9]{3}[-][0-9]{4}

[0-9]{9}

我们只允许输入 9 位数字,但用户可以自由输入 123456789 或 12-345-6789。

有什么办法可以把它们合二为一吗?就像某种正则表达式条件语句?现在,我只是简单地枚举所有可用的格式,并在匹配到一种格式后退出。在进行比较之前,我总是可以去掉连字符,只使用 [0-9]{9},但这样我就学不到任何新东西了。

最佳答案

对于直线联合收割机,

(?:[0-9]{2}[-][0-9]{3}[-][0-9]{4}|[0-9]{9})

或合并逻辑(允许一个位置有破折号而没有其他位置,这可能不是所希望的),

[0-9]{2}-?[0-9]{3}-?[0-9]{4}

(第一个正则表达式中连字符周围的括号没有做任何事情。)

或者合并逻辑,如果存在一个连字符,则两个连字符都是必需的,

(?:\d{2}-\d{3}-|\d{5})\d{4}

(您的 [0-9] 也可以替换为 \d。)

关于java - 两个正则表达式模式,它们可以是一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1069650/

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