涛之雨 发表于 2020-8-17 17:44

【正则匹配】匹配包含abc且不包含abcde的一行(反向预查)

本帖最后由 涛之雨 于 2020-8-17 17:44 编辑

包含abc却不包含abcde的字符串
举个例子:
包含abc 但不包含abcde
abc1234531a
abcde
aabcca
包含abc 但不包含
包含abc de 但不包含
1234abcdf
12acabcdeaca
匹配到的结果应该是

如上图的五组



可以先思考一下

参考链接:
https://blog.csdn.net/thewindkee/article/details/52785763
https://www.runoob.com/regexp/regexp-metachar.html

(占位符)

(占位符)

(占位符)

(占位符)

(占位符)

(占位符)

(占位符)

(占位符)

(占位符)

(占位符)

(占位符)

(占位符)
下面分享一下我想出的答案




不一定是最简单的,有更简单的或其他匹配的方法可以回复一下




(感觉应该没人看2333333)


/^((?!abcde).)*(?=abc)((?!abcde).)*$/
(注:前后的/是随手写上的,表示里面是正则表达式,不属于表达式本身)

徒想er 发表于 2020-8-17 18:44

正则这东西,真的是,没有太大难度,但是平时用得少,导致 每次要用时都忘了{:301_1007:}

列明 发表于 2020-8-17 19:02

([^abc]*(abc(([^d].)|(.[^e])){2})+[^abc]*)+


1       
包含abc 但不包含       
包含abc 但不包含        abc 但不包        不包        不包               
2        de
abc1234531        de
abc1234531        abc1234        34        34               
3        abcca
包含abc 但不包含
包含abc de 但不包含
1234abcdf
12        abcdf
12        abcdf
       
        e        
       

涛之雨 发表于 2020-8-17 17:46

自古楼主坐沙发,这个问题是在
https://blog.csdn.net/thewindkee/article/details/52785763
评论中看到的,想了一下

正己 发表于 2020-8-17 17:51

正则小辣鸡前来报到

白衣国度 发表于 2020-8-17 18:10

好久没用了,都忘记了

Windows10 发表于 2020-8-17 18:11

参考一下

威武老大哥 发表于 2020-8-17 18:24

本帖最后由 威武老大哥 于 2020-8-20 14:55 编辑

不错,值得思考

boxer 发表于 2020-8-17 18:41

好多时候感觉偏离了本质,用两句有啥不好?

列明 发表于 2020-8-17 19:31

威武老大哥 发表于 2020-8-17 18:24
再发你个有难度的练练手

下面是成绩单:


>([\S]+((优秀)|(良好)|(极好)))+<

1        >成山|极好|优秀|良好|优秀<        成山|极好|优秀|良好|优秀        优秀        优秀                       
2        >王冰心|良好|极好|优秀|良好<        王冰心|良好|极好|优秀|良好        良好                良好               
页: [1] 2
查看完整版本: 【正则匹配】匹配包含abc且不包含abcde的一行(反向预查)