请问,正则表达式的这个"|"符号 正则表达式:(19|20)\d{2}这是用来检查日期的正则表达式,比如1987这个字符串就能匹配我的问题是:"|"符号为什么选择的是19或20,不是选择9或2呢?照理说应该是9或2啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 总结一下就是:| 只要碰不到结束的)或者下一个|的话,就会往下去匹配,知道匹配不上为止,也就是一个贪婪的模式1L 说的这个19|20\d{2}会匹配 19 或 20\d{2} 一个正确的正则肯定得有前面的括号啊,所以就没有细说19|20\d{2} 这个分为19 and 20\d{2}(19|20)\d{2} 这个分为19\d{2} and 20\d{2}以此类推| 的范围就是延伸到正则边界,或者括号边界,或者下一个| () 表捕获组你的表达式没必要捕获组所以可以这样写:(?:19|20)\d{2}或(?n)(19|20)\d{2} 参考正则表达式学习参考2.2.7 分支结构(Alternation)当一个字符串的某一子串具有多种可能时,采用分支结构来匹配,“|”表示多个子表达式之间“或”的关系,“|”是以()限定范围的,如果在“|”的左右两侧没有()来限定范围,那么它的作用范围即为“|”左右两侧整体。举例:“^aa|b$”在匹配“cccb”时,是可以匹配成功的,匹配的结果是“b”,因为这个表达式表示匹配“^aa”或“b$”,而“b$”在匹配“cccb ”时是可以匹配成功的。“^(aa|b)$”在区配“cccb”时,是匹配失败的,因为这个表达式表示在“开始”和“结束”位置之间只能是“aa”或“b”,而“cccb”显然是不满足的。3 正则表达式进阶 Effective C# 第二版 中文 之03 AD认证,单点登录问题 如何让自定义event在 属性浏览器中显示出来? 控件的Hide()方法和Visible属性有作用效果有什么区别? 查看 设置windows服务 请教一个在C#中地址传递的问题 关于调用CMD.exe的问题!! 客户要求后台监视他自己的电脑的键盘 用XPath查询路径得到Attribute,出现了奇怪的结果? 我是新手,写个函数为什么报了一大堆错误啊好心人帮看看 InsusPagingUtility这个类有什么作用 ReportViewer本地化 应用问题???
1L 说的这个
19|20\d{2}
会匹配 19 或 20\d{2}
19|20\d{2} 这个分为19 and 20\d{2}
(19|20)\d{2} 这个分为19\d{2} and 20\d{2}
以此类推
| 的范围就是延伸到正则边界,或者括号边界,或者下一个|
所以可以这样写:(?:19|20)\d{2}或
(?n)(19|20)\d{2}
当一个字符串的某一子串具有多种可能时,采用分支结构来匹配,“|”表示多个子表达式之间“或”的关系,“|”是以()限定范围的,如果在“|”的左右两侧没有()来限定范围,那么它的作用范围即为“|”左右两侧整体。举例:“^aa|b$”在匹配“cccb”时,是可以匹配成功的,匹配的结果是“b”,因为这个表达式表示匹配“^aa”或“b$”,而“b$”在匹配“cccb ”时是可以匹配成功的。“^(aa|b)$”在区配“cccb”时,是匹配失败的,因为这个表达式表示在“开始”和“结束”位置之间只能是“aa”或“b”,而“cccb”显然是不满足的。3 正则表达式进阶