Crossin的编程教室

标题: 正则表达式二求解惑 [打印本页]

作者: 伤感的小龙虾    时间: 2018-8-1 09:38
标题: 正则表达式二求解惑
现在学到了正则表达式(2),有一个疑惑,就是匹配符为“.*”的时候,为什么最后会有一个空的引号呢?

TIM截图20180801093722.png (36.71 KB, 下载次数: 449)

TIM截图20180801093722.png


作者: crossin先生    时间: 2018-8-1 14:34
* 表示0到多个
空字符串就是0个
作者: 伤感的小龙虾    时间: 2018-8-1 14:44
crossin先生 发表于 2018-8-1 14:34
* 表示0到多个
空字符串就是0个

可是别的后面也没有个“‘########’,‘1’”或者“‘########’,‘########’,‘2’”这样子啊。
别的都是“‘#####’,‘########’”或“‘#####’,‘########’,‘########’”之类的
而他是“,‘########’,‘’”这样子。
别的都是抓到就显示,抓不抓到也不会放个数字表示抓到的数量,为什么只有“.*”匹配的时候,最后会有一个空字符?而别的匹配不会有?
作者: crossin先生    时间: 2018-8-2 14:24
伤感的小龙虾 发表于 2018-8-1 14:44
可是别的后面也没有个“‘########’,‘1’”或者“‘########’,‘########’,‘2’”这样子啊。
别的都 ...

和数量没关系。空字符不是0(回头看看字符串)
空字符就是str,只不过内容为空。我说“空字符串就是0”,是指空字符符合“0个任意字符”这个匹配规则
'' 就是符合 .* 这个规则,你不想这样那应该用 .+
其他的没有是因为其他的不符合(“1”、“2”不符合你的规则,况且文本里也不一定有1、2),这里不是什么特殊情况,就是严格按照规则来匹配的





欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5