社区
C#
帖子详情
请问,正则表达式的这个"|"符号
rrrrr32
2012-03-08 11:29:24
正则表达式:(19|20)\d{2}
这是用来检查日期的正则表达式,比如1987这个字符串就能匹配
我的问题是:
"|"符号为什么选择的是19或20,不是选择9或2呢?照理说应该是9或2啊?
...全文
137
10
打赏
收藏
请问,正则表达式的这个"|"符号
正则表达式:(19|20)\d{2} 这是用来检查日期的正则表达式,比如1987这个字符串就能匹配 我的问题是: "|"符号为什么选择的是19或20,不是选择9或2呢?照理说应该是9或2啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
-过客-
2012-03-08
打赏
举报
回复
参考
正则表达式学习参考
2.2.7 分支结构(Alternation)
当一个字符串的某一子串具有多种可能时,采用分支结构来匹配,“|”表示多个子表达式之间“或”的关系,“|”是以()限定范围的,如果在“|”的左右两侧没有()来限定范围,那么它的作用范围即为“|”左右两侧整体。
举例:
“^aa|b$”在匹配“cccb”时,是可以匹配成功的,匹配的结果是“b”,因为这个表达式表示匹配“^aa”或“b$”,而“b$”在匹配“cccb ”时是可以匹配成功的。
“^(aa|b)$”在区配“cccb”时,是匹配失败的,因为这个表达式表示在“开始”和“结束”位置之间只能是“aa”或“b”,而“cccb”显然是不满足的。
3 正则表达式进阶
q107770540
2012-03-08
打赏
举报
回复
() 表捕获组
你的表达式没必要捕获组
所以可以这样写:
(?:19|20)\d{2}
或
(?n)(19|20)\d{2}
pmars
2012-03-08
打赏
举报
回复
[Quote=引用 5 楼 rrrrr32 的回复:]
引用 3 楼 pmars 的回复:
总结一下就是:| 只要碰不到结束的)或者下一个|的话,就会往下去匹配,知道匹配不上为止,也就是一个贪婪的模式
1L 说的这个
19|20\d{2}
会匹配 19 或 20\d{2}
你只说了:
只要碰不到结束 的)
没有说前面的(是怎么回事?
[/Quote]
一个正确的正则肯定得有前面的括号啊,所以就没有细说
19|20\d{2} 这个分为19 and 20\d{2}
(19|20)\d{2} 这个分为19\d{2} and 20\d{2}
以此类推
| 的范围就是延伸到正则边界,或者括号边界,或者下一个|
rrrrr32
2012-03-08
打赏
举报
回复
[Quote=引用 3 楼 pmars 的回复:]
总结一下就是:| 只要碰不到结束的)或者下一个|的话,就会往下去匹配,知道匹配不上为止,也就是一个贪婪的模式
1L 说的这个
19|20\d{2}
会匹配 19 或 20\d{2}
[/Quote]
你只说了:
只要碰不到结束 的)
没有说前面的(是怎么回事?
pmars
2012-03-08
打赏
举报
回复
[Quote=引用 2 楼 chinajiyong 的回复:]
引用 1 楼 caozhy 的回复:
19|20\d{2}
这样是9或者2。
我来详细解释一下
就是()的原因,()一般表达子表达式
(19|20)会把19 20 当做两个整数,19和20,你如果把19、20放在()外面那就职匹配到9和2了,相当于[92].这也是()的最大用处
[/Quote]
3L 的东西是刚才研究了一下总结的
2L说的
你如果把19、20放在()外面那就职匹配到9和2了,相当于[92].这也是()的最大用处
这句话是什么意思?
把19、20放在()外面
这个是怎么放的?具体正则写成什么样?
我没有搞明白,呵呵
pmars
2012-03-08
打赏
举报
回复
总结一下就是:| 只要碰不到结束的)或者下一个|的话,就会往下去匹配,知道匹配不上为止,也就是一个贪婪的模式
1L 说的这个
19|20\d{2}
会匹配 19 或 20\d{2}
EnForGrass
2012-03-08
打赏
举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
19|20\d{2}
这样是9或者2。
[/Quote]
我来详细解释一下
就是()的原因,()一般表达子表达式
(19|20)会把19 20 当做两个整数,19和20,你如果把19、20放在()外面那就职匹配到9和2了,相当于[92].这也是()的最大用处
threenewbee
2012-03-08
打赏
举报
回复
19|20\d{2}
这样是9或者2。
pmars
2012-03-08
打赏
举报
回复
[Quote=引用 8 楼 lxcnn 的回复:]
参考
正则表达式学习参考
2.2.7 分支结构(Alternation)
当一个字符串的某一子串具有多种可能时,采用分支结构来匹配,“|”表示多个子表达式之间“或”的关系,“|”是以()限定范围的,如果在“|”的左右两侧没有()来限定范围,那么它的作用范围即为“|”左右两侧整体。
举例:
“^aa|b$”在匹配“cccb”时,是可以匹配成功的,匹配的结果是“b”,因为……
[/Quote]
Python
正则表达式
(一看就懂)
哈喽O(∩_∩)O 今天来发一下python
正则表达式
,其实这个也是比较简单的 什么是
正则表达式
(⊙_⊙) 目前越来越多的网站、编辑器、编程语言都已支持一种叫“
正则表达式
”的字符串查找“公式”,有过编程经验的同学都应该了解
正则表达式
(Regular Expression 简写regex)是什么东西,它是一种字符串匹配的模式(pattern),更像是一种逻辑公式。 简单说,
正则表达式
是 python中必备的工具,主要是用来查找和匹配字符串的。
正则表达式
尤其在python爬虫上用的多。 正则表达
JavaScript
正则表达式
:
正则表达式
中的特殊字符
正则表达式
的组成一个
正则表达式
可以由简单的字符构成,比如 /abc/,也可以是简单和特殊字符的组合,比如 /ab*c/ 。其中特殊字符也被称为元字符,在
正则表达式
中是具有特殊意义的专用
符号
,如 ^ 、$ 、+ 等。特殊字符非常多,可以参考: MDN:
正则表达式
- JavaScript | MDN (mozilla.org)jQuery 手册:
正则表达式
部分正则测试工具: 在线
正则表达式
测试这里我们把元字符划分几类学习 。边界符
正则表达式
中的边界符(位置符)用来提示字符所处的位置,主要有两个字符。 如果 ^
正则表达式
(Regular Expression)——入门笔记(常用
正则表达式
符号
、
正则表达式
在线调试工具)
1.
正则表达式
到底是什么东西?
正则表达式
(英语:Regular Expression,在代码中常简写为regex、regexp或RE)是用于描述字符串规则的工具。换句话说,
正则表达式
就是记录文本规则的代码。
正则表达式
语言由两种基本字符类型组成:原义(正常)文本字符和元字符(metacharacter)。元字符使
正则表达式
具有处理能力。所谓元字符就是指那些在
正则表达式
中具有特殊意义的专用字符,可...
正则表达式
的或(|)(一个烂
正则表达式
引发的博客)
Email:longsu2010 at yeah dot net 如题,我很荣幸的宣布,这个烂
正则表达式
的作者是我。 起源于Unix的
正则表达式
一直是字符串处理的瑞士军刀,今天用这刀写了一段程序,结果与预期的不相符。如下 /^Task0|Task1|Task10$/ 这个
正则表达式
我期待的结果是只匹配Task0、Task1、Task10三者之一,然而它却能匹配Task11、Task12等任
正则表达式
的学习之提取字符串中用“|”分割开的单词
首先,在
正则表达式
中“|”表示or,当想使用其原有含义时,需要写为“\|”,而\也有特殊含义,因此最终的
正则表达式
为“\\|”,再使用String类的split()函数,就可以提取每个|分隔开的单词了,JAVA代码如下: public class test { public static void main(String[] args) { String s="aa|bbb|cc|dd|e
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章