其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

怎么把两个正则表达式用或的关系一起使用?

GG网络技术分享 2025-03-18 16:14 2


问题描述:

(((19)\\d{2})|(2000))-(1[0-2]|0?[1-9])-\\b(0?[1-9]\\b|\\b[1-2][0-9]\\b|\\b3[0-1]\\b)

——————————————————————————————————
((2001)-0?[1-8]-\\b(0?[1-8]\\b|\\b[1-2][0-9]\\b|\\b3[0-1]\\b))
第一个是验证日期是否在1900-2000年之间,第二个是验证是否在2000年1月到8月之间。
我把两个正则表达左右括号打起来,用|连接,为什么只能验证第一个,第二个不行,求高人指教

网友观点:

当然不能匹配后面的条件了,我们默认的正则匹配模式是“贪婪模式”这里涉及到匹配模式,前面的匹配正确了后面的就不匹配了。你可以分开两个条件分开验证

需要用$来表示字符串的结尾,((2001)-0?[1-8]-\\b(0?[1-8]\\b$|\\b[1-2][0-9]\\b|\\b3[0-1]\\b))$

你是如何学会正则表达式的?

赞同

@郑海波

,除了自己实现一遍,剩下的也就是『无他,唯手熟尔』

另外工具方面推荐一个将 JS 正则可视化的工具:

https://regexper.com/

对于理解别人源码里的(或者自己的,哈哈)复杂正则很有帮助:

标签:

提交需求或反馈

Demand feedback