Javascript .match正则表达式与反向量词(或从右到左解析)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript .match正则表达式与反向量词(或从右到左解析),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含959字,纯文字阅读大概需要2分钟。
内容图文
![Javascript .match正则表达式与反向量词(或从右到左解析)](/upload/InfoBanner/zyjiaocheng/806/6d5ef27681724b35a84ea62c4e74f6a1.jpg)
给出像这样的字符串……
"ABCDEFG"
有没有可能有一个量词在“反向”工作,所以说?
例如:
var foo = "ABCDEFG";
foo.match(/.{1,3}/g);
结果是:
// Array(3) ["ABC", "DEF", "G"]
我正在努力实现的目标:
// Array(3) ["A", "BCD", "EFG"]
因此,无论字符串长度如何,数组始终是字符串的表示形式,每个节点的长度为3个字符(可能除了第1个),但始终从字符串的末尾开始.所以第一个数组项可能是1,2或3个字符长,这取决于“剩下的”.
我尝试使用以下错误:
foo.match(/.{-1,3}/g); // null
foo.match(/.{1,-3}/g); // null
想想也许我可以使用类似于拆分字符串的否定,但是每个示例都返回null.
我假设这可以在模式中以某种方式完成,而不是量词,所以我想了解如何使用.match()编写.或者这需要编写一个自定义方法,其中涉及其他字符串操作,以实现这一目标?
解决方法:
正则表达式总是从左到右匹配,但是您可以使用带有字符串结尾锚点的正向前瞻来实现您想要的:
var foo = "ABCDEFG";
foo.match(/.{1,3}(?=(.{3})*$)/g); // ["A", "BCD", "EFG"]
这里的子模式(?=(.{3})* $)是一个超前表达式,匹配零(或完全!)3个字符的重复次数或多次重复,以字符串末尾($)为界.
内容总结
以上是互联网集市为您收集整理的Javascript .match正则表达式与反向量词(或从右到左解析)全部内容,希望文章能够帮你解决Javascript .match正则表达式与反向量词(或从右到左解析)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。