我正在阅读 Douglas Crockfords Javascript: The Good Parts,我刚刚完成了正则表达式一章。在本章中,他称 JavaScript 的\b
正向预读(?=)
和负向预读(?!)
“不是一个好部分”
他解释了\b
不好的原因(它\w
用于单词边界查找,并且\w
对于任何使用 unicode 字符的语言都失败了),这对我来说似乎是一个很好的理由。
不幸的是,正负前瞻不好的原因被遗漏了,我想不出一个。掌握正则表达式向我展示了前瞻带来的强大功能(当然也解释了它带来的问题),但我真的想不出任何可以将其定性为“不好的部分”的东西。
谁能解释为什么 JavaScript (positive|negative) lookahead 或 (positive|negative) lookahead 一般应该被认为是“不好的”?