使用正则表达式的codingBat repeatEnd

使用正则表达式的codingBat repeatEnd,第1张

使用正则表达式的codingBat repeatEnd

好一个!尽管我会重构该正则表达式以避免不必要地使用否定逻辑,但我没有找到一种显着改进该正则表达式的方法

".(?=.{N})|.(?=.*(?<=(.{N})))"

这样,直到输入最后 N个 字符时,才输入第二种替代方法,我认为这使意图更清晰了。

我从未见过参考文献说可以嵌套环顾四周,但是像Bart一样,我也不知道为什么不这样做。有时,我会在lookbehinds内部使用先行方式来绕过可变长度lookbehind表达式的限制。


编辑: 我刚刚意识到我可以通过将替换放在lookahead中来简化正则表达式:

".(?=.{N}|.*(?<=(.{N})))"

顺便说一句,您是否考虑过使用

format()
而不是构建正则表达式
replace()

return str.replaceAll(  String.format(".(?=.{%1$d}|.*(?<=(.{%1$d})))", N),  "");


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5565562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存