JavaScript: хорошие части; почему предвкушение не хорошо? - PullRequest
17 голосов
/ 04 декабря 2009

Я читаю Дугласа Крокфордса Javascript: The Good Parts , я только что закончил главу о регулярных выражениях. В этой главе он называет JavaScript \b, положительный взгляд (?=) и отрицательный взгляд (?!) "не очень хорошая часть"

Он объясняет причину, по которой \b не является хорошим (он использует \w для поиска границ слов, а \w не подходит для любого языка, использующего символы Юникода), и это выглядит как очень хорошая причина для меня.

К сожалению, причина того, что положительный и отрицательный взгляды не являются хорошими, не учтена, и я не могу придумать один. Освоение регулярных выражений показал мне силу, которая приходит с упреждающим взглядом (и, конечно, объясняет проблемы, которые она приносит с собой), но я не могу думать ни о чем, что могло бы квалифицировать его как «нехорошую часть» .

Может ли кто-нибудь объяснить, почему JavaScript (позитивный | негативный) прогноз или (позитивный | негативный) прогноз в целом следует считать «не хорошим»?

Кажется, я не единственный с этим вопросом: один и два .

Ответы [ 3 ]

10 голосов
/ 04 декабря 2009
3 голосов
/ 04 декабря 2009

Единственная причина, по которой я могу придумать, заключается в том, что они поддерживаются только примерно половиной популярных движков регулярных выражений, хотя, если вы ограничитесь универсально поддерживаемым синтаксисом, есть много вещей, которые вы просто не сможете сделать.

Кстати, (положительный | отрицательный) (lookahead | lookbehind) иногда все вместе называют «lookaround», как на этой странице, которая сравнивает поддержку функций среди различных реализаций:

http://www.regular -expressions.info / refflavors.html

2 голосов
/ 04 декабря 2009

Они слишком тяжелы для него?

Или: lookaheads и lookbehinds (последние не поддерживаются в JavaScript) значительно увеличивают время регулярного выражения. Но обычно это не регулярное выражение для огромного количества данных в JavaScript. Так что они великолепны; используйте их, когда они полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...