epros Гость
|
Добавлено: Чт Май 01 2003 11:12 Заголовок сообщения: Регулярные выражения в JavaScript |
|
|
Субж - отличная вещь. Но есть в этом моменты, которых я не понимаю. Например, как определить отрицание не отдельных символов, а некоторой строчки? Скажем, мне нужно найти выражения, заключенные в некие псевдо-скобки, к примеру такого вида: <begin ... end>. На первый взгляд просто: /<begin.*end>/
Но такой синтаксис по умолчанию "жадный", т.е. он глотает строку от самого левого <begin до самого правого end>. А мне, естественно, нужно только до СЛЕДУЮЩЕГО end>! В справочнике написано, что нежадным будет такой синтаксис для определения строчки из произвольных символов: .*? Но в старых браузерах это не работает (проверено на IE5.0).
Ладно, пробуем иначе. Как задать спределение "строчки из любых символов, внутри которой не встречается end>"? я могу записать только "строчку из любых символов, внутри которой не встречается e": [^e]*
В справочнике описана команда x(?!y): символ x, за которым следует "любой, кроме y". Можно было бы попробовать из этого что-нибудь составить, но такой синтаксис в старых браузерах опять же не работает. Синтаксис x[^y] его не заменяет, поскольку определяет два символа, а не один!
По этой причине запись [^e]|e[^n]|en[^d]|end[^>] будет неправильной. Если строчка заканчивается, скажем, на eend>, она не будет обработана правильно: ee подойдет под e[^d], т.е. завершающая искомую строку end> не будет обнаружена. |
|