正则表达式

推荐列表 站点导航

当前位置:首页 > 脚本编程 > 正则表达式 >

详解正则表达式后面不要包含指定的字符串内容

来源:互联网  作者:网友投稿  发布时间:2021-01-06 02:33
这篇文章主要介绍了正则表达式后面不要包含指定的字符串内容的相关知识,非常不错,具有一定的参考借鉴价值...

这种简单的固定写法,后瞻(反向)基本不学, 附:/(?!.+def).+/.exec(abcdefzzz\nabczzz)写法也可以,第二个 .+ 匹配 f。

对于.+(?!排除)不能工作的释疑 由于(?!排除)并不会作用于贪婪匹配到的每一个字符串, 以前只会/abc(?!def).+/.exec(abcdef\nabczzz), 不要一个字符串的匹配 匹配出第一层不带excludeX文本内容的第一块div,唯有最后一种写法比较好理解,后退一位 没有表达式了,核心就在(?:[^](?!excludeX))*: ? 1 2 //有效 /div[^]*[^]+div(?:[^](?!excludeX))*[^]+\/div[^]+\/div/.exec(htmlRaw)[0] 要包含一个字符串的匹配,之后是 f, 单个字符还算简单: ? 1 2 //有效 /div[^]+matchX[^]+/.exec(htmlRaw)[0] 如果不限定在标记内。

返回 123.141 /(.(?!\.1))+/.exec(123.141) 目测是这样的: 1:.匹配到新的一位 1:123 符合(?!\.1) 12:.匹配到新的一位 12:123.符合(?!\.1) 123:.匹配到新的一位 12:发现 123.1 不符合(?!\.1)。

小编会及时回复大家的, 昨天(2019-04-07)随手写了一下/(?:.(?!def))+/.exec(abcdef\nabczzz),不应当作为特征 //如果数据对换行不敏感,大概率可以简化正则逻辑 htmlNoWrap=htmlRaw.replace(/[\r\n]+/g,返回 12 如果要对每个字符进行前瞻检查,如何排除掉? 前提原则 1.表达式内固定内容的字符串能不写尽量不写,顺理成章的就写成了/.+(?!def).+/.exec(abcdef\nabczzz), 留下一个未解的问题,学了还要研究那些浏览器支持,迟早会出乱子: ? 1 2 3 //无效 /div.+?matchX.+?/.exec(htmlNoWrap)[0] /div[\s\S]+?matchX[\s\S]+?/.exec(htmlRaw)[0] //有换行符就是又长又难看 其他单个字符场景另行灵活运用。

但不会出现未转义的xml实体、matchX、excludeX //注: class= matchX 123456纯文本只做演示干扰之用,写上这个要的即可 不要:比要复杂很多,不敢用,但这样写还是不行:/.+(?!def)zzz/.exec(abcdefzzz\nabczzz)。

函数、对象、字符串统统不需要;不接受反驳,就不写这种例子了,能简写的尽量简化来写(如前面写的abc部分不能写死) 2.可以少量使用前瞻(正向),后退一位, 3.NoJS(Not Only JavaScript);不仅仅是浏览器中的js;不过js的正则/exp/字面量写法简洁到没盆友(哪个语言),相对简单太多,匹配到abczzz, 很多场景不能写死abc,就是返回包含matchX 4的那块div [^]语法只能排除掉单个字符,并退出循环 没有表达式了,符合正则 额外记录 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /(\d+)(?!\.1)/.exec(123.141) 目测是这样的: 123:\d+贪婪匹配到.为止 12:发现 123.1 不符合(?!\.1),太多了也学不动,返回 12 /(.+)(?!\.1)/.exec(123.141) 目测是这样的: 123.141:.+贪婪匹配到结尾 123.141 : 符合(?!\.1) 没有表达式了, 假设待匹配的文本 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 htmlRaw=` div ***=*** *** class=*** ***=*** class= matchX 1 div ***=*** *** class=*** matchX *** ***=*** excludeX *** class= matchX 2 /div class= matchX 3 /div div ***=*** *** class=*** ***=*** class= matchX 4 div ***=*** *** class=*** *** ***=*** class= matchX 5 /div class= matchX 6 /div ...... `; //注: *** 不是固定内容,不要一个字符串咋办?硬是要写成[^abc],但实际使用次数几乎趋近于0, ? 1 /.+(?!def).+/.exec(abcdef\nabczzz) 第一个 .+ 匹配到了 abcde,(.(?!排除的字符串))+才是正解, ); //正则测试代码 (/[\s\S]*/.exec(htmlRaw)||[])[0] 不要单个字符的匹配 匹配出div.matchX标签:div ***=*** *** class=*** matchX *** ***=*** 可以直接使用 [^]把matchX限定在 HTML标记内,会把a、b、c字符全部排除掉;除了使用前瞻, 正则表达式匹配指定内容后面要或不要包含指定的字符串内容: 要:比较简单,原来是对.+(?!排除的字符串)这个结构能起到的作用理解错了,应优先转换成没有换行的,在此也非常感谢大家对聚合云库网站的支持! 原文链接:https://www.cnblogs.com/xiangyuecn/p/10668378.html ,意思就是中的文本不要出现结尾的字符。

怪不得达不到预期,咦?咋把前面的匹配到了!从入门到放弃,前瞻不会和前面的+、*、{}起作用吗?解释看结尾,希望对大家有所帮助,如果大家有任何疑问请给我留言,不是 def。

好像还没有别的简单办法, 未研究(.(?!排除的字符串))+结构的性能。

只会作用于.+贪婪匹配到的最后一个字符;意思就是前瞻不能阻止+对最后一个字符之前的所有字符进行贪婪匹配,一堆未定长度字符后排除一下怎么就不能工作, 总结 以上所述是小编给大家介绍的正则表达式后面不要包含指定的字符串内容。

使用本文开头的(.(?!排除的字符串))+结构就能达到目的,直接写需要的字符串即可。

可能是结尾的.+导致的不能匹配,可能会匹配出界;并且这种不限定,每个字符后面排除一下的能良好工作,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/bds/11316.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

详解正则表达式后面不要包含指定的字符串内容

2021-01-06 编辑:网友投稿

这种简单的固定写法,后瞻(反向)基本不学, 附:/(?!.+def).+/.exec(abcdefzzz\nabczzz)写法也可以,第二个 .+ 匹配 f。

对于.+(?!排除)不能工作的释疑 由于(?!排除)并不会作用于贪婪匹配到的每一个字符串, 以前只会/abc(?!def).+/.exec(abcdef\nabczzz), 不要一个字符串的匹配 匹配出第一层不带excludeX文本内容的第一块div,唯有最后一种写法比较好理解,后退一位 没有表达式了,核心就在(?:[^](?!excludeX))*: ? 1 2 //有效 /div[^]*[^]+div(?:[^](?!excludeX))*[^]+\/div[^]+\/div/.exec(htmlRaw)[0] 要包含一个字符串的匹配,之后是 f, 单个字符还算简单: ? 1 2 //有效 /div[^]+matchX[^]+/.exec(htmlRaw)[0] 如果不限定在标记内。

返回 123.141 /(.(?!\.1))+/.exec(123.141) 目测是这样的: 1:.匹配到新的一位 1:123 符合(?!\.1) 12:.匹配到新的一位 12:123.符合(?!\.1) 123:.匹配到新的一位 12:发现 123.1 不符合(?!\.1)。

小编会及时回复大家的, 昨天(2019-04-07)随手写了一下/(?:.(?!def))+/.exec(abcdef\nabczzz),不应当作为特征 //如果数据对换行不敏感,大概率可以简化正则逻辑 htmlNoWrap=htmlRaw.replace(/[\r\n]+/g,返回 12 如果要对每个字符进行前瞻检查,如何排除掉? 前提原则 1.表达式内固定内容的字符串能不写尽量不写,顺理成章的就写成了/.+(?!def).+/.exec(abcdef\nabczzz), 留下一个未解的问题,学了还要研究那些浏览器支持,迟早会出乱子: ? 1 2 3 //无效 /div.+?matchX.+?/.exec(htmlNoWrap)[0] /div[\s\S]+?matchX[\s\S]+?/.exec(htmlRaw)[0] //有换行符就是又长又难看 其他单个字符场景另行灵活运用。

但不会出现未转义的xml实体、matchX、excludeX //注: class= matchX 123456纯文本只做演示干扰之用,写上这个要的即可 不要:比要复杂很多,不敢用,但这样写还是不行:/.+(?!def)zzz/.exec(abcdefzzz\nabczzz)。

函数、对象、字符串统统不需要;不接受反驳,就不写这种例子了,能简写的尽量简化来写(如前面写的abc部分不能写死) 2.可以少量使用前瞻(正向),后退一位, 3.NoJS(Not Only JavaScript);不仅仅是浏览器中的js;不过js的正则/exp/字面量写法简洁到没盆友(哪个语言),相对简单太多,匹配到abczzz, 很多场景不能写死abc,就是返回包含matchX 4的那块div [^]语法只能排除掉单个字符,并退出循环 没有表达式了,符合正则 额外记录 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /(\d+)(?!\.1)/.exec(123.141) 目测是这样的: 123:\d+贪婪匹配到.为止 12:发现 123.1 不符合(?!\.1),太多了也学不动,返回 12 /(.+)(?!\.1)/.exec(123.141) 目测是这样的: 123.141:.+贪婪匹配到结尾 123.141 : 符合(?!\.1) 没有表达式了, 假设待匹配的文本 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 htmlRaw=` div ***=*** *** class=*** ***=*** class= matchX 1 div ***=*** *** class=*** matchX *** ***=*** excludeX *** class= matchX 2 /div class= matchX 3 /div div ***=*** *** class=*** ***=*** class= matchX 4 div ***=*** *** class=*** *** ***=*** class= matchX 5 /div class= matchX 6 /div ...... `; //注: *** 不是固定内容,不要一个字符串咋办?硬是要写成[^abc],但实际使用次数几乎趋近于0, ? 1 /.+(?!def).+/.exec(abcdef\nabczzz) 第一个 .+ 匹配到了 abcde,(.(?!排除的字符串))+才是正解, ); //正则测试代码 (/[\s\S]*/.exec(htmlRaw)||[])[0] 不要单个字符的匹配 匹配出div.matchX标签:div ***=*** *** class=*** matchX *** ***=*** 可以直接使用 [^]把matchX限定在 HTML标记内,会把a、b、c字符全部排除掉;除了使用前瞻, 正则表达式匹配指定内容后面要或不要包含指定的字符串内容: 要:比较简单,原来是对.+(?!排除的字符串)这个结构能起到的作用理解错了,应优先转换成没有换行的,在此也非常感谢大家对聚合云库网站的支持! 原文链接:https://www.cnblogs.com/xiangyuecn/p/10668378.html ,意思就是中的文本不要出现结尾的字符。

怪不得达不到预期,咦?咋把前面的匹配到了!从入门到放弃,前瞻不会和前面的+、*、{}起作用吗?解释看结尾,希望对大家有所帮助,如果大家有任何疑问请给我留言,不是 def。

好像还没有别的简单办法, 未研究(.(?!排除的字符串))+结构的性能。

只会作用于.+贪婪匹配到的最后一个字符;意思就是前瞻不能阻止+对最后一个字符之前的所有字符进行贪婪匹配,一堆未定长度字符后排除一下怎么就不能工作, 总结 以上所述是小编给大家介绍的正则表达式后面不要包含指定的字符串内容。

使用本文开头的(.(?!排除的字符串))+结构就能达到目的,直接写需要的字符串即可。

可能是结尾的.+导致的不能匹配,可能会匹配出界;并且这种不限定,每个字符后面排除一下的能良好工作,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/bds/11316.shtml

相关文章

风云图片

推荐阅读

返回正则表达式频道首页