Я читаю Douglas Crockfords Javascript: The Good Parts, я только что закончил главу регулярных выражений. В этой главе он называет JavaScript \b
, положительный lookahead (?=)
и отрицательный lookahead (?!)
"не является хорошей частью"
Он объясняет причину отсутствия \b
(он использует \w
для определения границы слова, а \w
не подходит для любого языка, который использует символы Юникода), и это выглядит для меня очень веской причиной.
К сожалению, причина положительного и отрицательного взгляда не является хорошей, и я не могу придумать ее. Освоение регулярных выражений показал мне силу, которая приходит с учетом (и, конечно, объясняет проблемы, которые она приносит с собой), но я не могу думать о чем-то, что квалифицировало бы его как "не очень хорошее".
Может ли кто-нибудь объяснить, почему JavaScript (положительный | отрицательный) lookahead или (положительный | отрицательный) lookahead вообще следует считать "нехорошим"?
Кажется, я не единственный, у кого есть этот вопрос: один и два.