. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 回复
 
主题工具
xldfe
 
xldfe 的头像
热心会员
 
资 料:
注册日期: Mar 2002
帖子: 3,474 声望值: 6
精华: 0,解答: 3
#1 旧 2020-09-12, 20:41:22 默认 【求助】请教一个正则的问题
xldfe 当前离线  

源串:bbbccabafasfsafsafasfsafb
正则: (?<=bbb).+ (?<!bbb).+
(?<=bbb)环视的是bbb后面的位置 前面必须是bbb所以.+能匹配出ccabafasfsafsafasfsafb
(?<!bbb)环视的是bbb后面的位置 但前面不能为bbb 那么就是排除掉bbb后面c这个位置
(?<!bbb).也证明了这点
那为什么(?<!bbb).+会匹配出整个字符串 不是已经排除了c这个位置吗

此帖于 2020-09-12 22:06:30 被 xldfe 编辑. .


洗 车 就 下 雨
回复时引用此帖
judite
 
judite 的头像
热心会员
 
资 料:
注册日期: Jan 2001
帖子: 2,493 声望值: 8
精华: 2,解答: 30
#2 旧 2020-09-13, 10:41:22 默认
judite 当前离线  

这一串都是字符,所以呢,系统匹配的时候是按照.+来匹配的
你这一串不如
(^!bbb)\w+
来的简单明了
假如没有特殊字符,尽量不要用.来匹配所有字符
回复时引用此帖
xldfe
 
xldfe 的头像
热心会员
 
资 料:
注册日期: Mar 2002
帖子: 3,474 声望值: 6
精华: 0,解答: 3
#3 旧 2020-09-13, 12:12:08 默认
xldfe 当前离线  

引用:
作者: judite 查看帖子
这一串都是字符,所以呢,系统匹配的时候是按照.+来匹配的
你这一串不如
(^!bbb)\w+
来的简单明了
假如没有特殊字符,尽量不要用.来匹配所有字符
应该是(?!bbb)\w+吧 这是没法排除bbb的 顺序否定放正则前面是对后面的正则做出限制
所以还是回到上面的问题(?=bbb) bbb是作为一个字符串来考虑的 同理(?!bbb)这里的bbb为什么不是作为字符串来考虑
回复时引用此帖
blacklong
 
blacklong 的头像
热心会员
 
资 料:
注册日期: Apr 2002
帖子: 3,860 声望值: 5
精华: 0,解答: 1
#4 旧 2020-09-17, 01:08:01 默认
blacklong 当前离线  

默认是贪婪匹配,你用.+?就行了。


我。
回复时引用此帖
发表新主题 回复

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 09:05:21.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号