栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java正则表达式后向组没有明显的最大长度错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java正则表达式后向组没有明显的最大长度错误

Java Lookbehind臭名昭著

因此,您认为Java不支持无限向后看吗?

但是下面的模式会编译!

(?<=d+)w+

…尽管在Match All中会产生意想不到的结果(请参阅demo)。

在另一方面,你可以成功使用该其他无限回顾后(我以极大的惊喜发现这个问题)

(?<=\G\d+,\d+,\d+),

拆分此字符串:

0,123,45,6789,4,5,3,4,6000

它将正确输出(请参阅在线演示):

0,123,456789,4,53,4,6000

这次的结果就是您所期望的。

但是,如果您使用来微调正则表达式以获得对而不是三胞胎

(?<=\G\d+,\d+),
,则这次不会分裂(请参见演示)。


底线

众所周知,Java落后是越野车。 知道这一点后,我建议您 不要浪费时间尝试理解为什么它会做 未记录的 事情

促使我得出这个结论的决定性词是扬·格瓦特斯(Jan Goyvaerts)的话,他是 Regex Cookbook 的合著者,也是一个Arch-
regex专家,他创造了一个出色的regex引擎,需要保持领先地位regex为其调试工具RegexBuddy提供了阳光:

Java在其后向实现中存在许多错误。其中一些(但不是全部)已在Java 6中修复。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号