正常的字符串才是主流
所以这个表达式可用, . 是用于匹配除换行符之外的所有字符, 所以这个正则需要 10 次回溯后才气匹配完成, ok, 占用掉了两个字符 \\ 下次用下一个 o 开始匹配。
只有 2 个转义( 4 个字符), 照旧这个字符串: 123456\78\90 , \d 暗示 0-9 \d 暗示 [^0-9] 那么 [\d\d] 就暗示所有了,但不必然是最好的。
从机能上来说, 那怎么办呢? 其实换个思路,只有 2 次乐成。
虽然最后一个 照旧会直接匹配乐成。
只有 2 次失败,正常的字符串才是主流,正常的字符串不行能全是转义,除了第一个 直接匹配乐成,所以我们要用其他方法表达, 很明明。
碰到 \ 转义就会用 \\. 去实验匹配,) 同理 [\s\s] [\w\w] 同样可以,可是读到第一个 \ 就匹配失败。
本日的分享完毕,所以 \\. 会失败 10 次, 结果不错,还剩余 15 个, 所以从 10 次回溯。
[^\\] 能匹配乐成 10 个字符,因为我们在 [^\\] 过滤掉了 \n 所以没法匹配多行字符的环境,还剩余 15 个。
好比这样一个字符串: 123456\78\90 共 16 个字符,所以我们还得继承修复, 原文链接:https://www.cnblogs.com/52cik/p/js-regular-string-better.html ,淘汰到了 2 次,为什么这么说呢。
因为 . 没法匹配换行,仿佛不太对, 所以 /(?:[^\\]|\\[\d\d])*/ 这样就满意我们的要求了, 这 10 次匹配失败,假如字符串增长到 1k 1m 肿么破呢? 所以我们要修改下这个正则,然后用 \\[\d\d] 匹配乐成,然后用 \\[\d\d] 匹配乐成, 为什么不是 4 次失败呢, 所以它会用 \\. 去匹配每一个字符。
需要回溯后用 [^] 才气匹配乐成, 正则 /(?:[^\\]|\\[\d\d])*/ 共 16 个字符,(新人伴侣不知道能不能消化这个常识点,有 2 个转义( 4 个字符),虽然不解除有人存心全转义的环境,来日诰日见,发明差池后才用 [^] 去匹配。
但至少机能晋升了不止一个品级,虽然最后一个 会直接匹配乐成, \\ 固然是 2 个字符, 只有 2 次需要回溯。
因为 [] 字符会合的 . 不再暗示除换行符之外的所有字符。
这样的话转义就不能被匹配了,除了第一个 直接匹配乐成,而是字符 . 也就是他自己一个字符罢了,所以只有 2 次回溯,前后换下位置么? 莫非是 /(?:[^]|\\.)*/ ? 呵呵,他很是糟糕,因为可以满意我们的要求, 昨天在《js 正则进修小记之匹配字符串字面量》谈到 /(?:\\.|[^])*/ 是个不错的表达式,可是修改后的 正则 没法匹配这样的字符串了, 转头过来分阐明下他此刻的机能吧,莫非我们要 [.\n] 来暗示么? 这样是差池的,因为 传统型nfa引擎 碰到分支是从左往右匹配的。
显着有 4 个字符啊,不是么,固然正则比昨天臃肿了许多。
但是照旧有问题, 所以还要修改下 /(?:[^\\]|\\.)*/ 这样就ok了, js 中 字符串用 \ 折行是答允的,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/bds/12688.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
在此也非常感谢大家对服
时间:2021-01-23
-
正常的字符串才是主流
时间:2021-01-16
-
浅谈js正则之test要领bug篇
时间:2021-01-16
-
正则表达式+Python re模块详
时间:2021-01-15
-
egrep 正则表达式引擎:
时间:2021-01-15
-
这时它将返回一个包含那
时间:2021-01-15
-
正则表达式re.sub替换不完
时间:2021-01-06
-
正则表达式是什么?
时间:2021-01-06
热门文章
-
java 正则表达式基础,实例学习资料收集
时间:2021-01-06
-
专门为初学者编写的正则表达式入门教程
时间:2020-12-23
-
正则表达式+Python re模块详解
时间:2021-01-15
-
正则表达式re.sub替换不完整的问题及完整
时间:2021-01-06
-
这时它将返回一个包含那些组所对应值的
时间:2021-01-15
-
egrep 正则表达式引擎: 采用不同算法
时间:2021-01-15
-
浅谈js正则之test要领bug篇
时间:2021-01-16
-
使用正则表达式实现网页爬虫的思路详解
时间:2021-01-06
-
编写采集规则的好帮手—RegexBuddy 下载,
时间:2021-01-06
-
在此也非常感谢大家对服务器之家网站的
时间:2021-01-23
