Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Шаблоны и регулярные выражения



В JavaScript регулярные выражения представлены объектом RegExp. Свойства RegExp принимают значения литералов регулярных выражений, заключенных в скобки /…/. Регулярные выражения из нескольких символов в стиле Perl записываются в косых скобках. Рассмотрим простой пример: /stud/. Регулярное выражение ищет все строки, содержащие подстроку stud. Выражение /^stud/ означает, что stud должно находится в начале слова (student), а /stud$/ - в конце (restud).

Символы могут объединяться в классы путем помещения в квадратные скобки. Квадратные скобки /[абв]/ означают “любой символ а,б,в из перечисленных в скобках”. Символ ^ в группе соответствует отрицанию, то есть указывает символы, не соответствующие шаблону. /[^абв]/ означает “любой символ отличный от а,б,в ”.

Для создания регулярных выражений могут быть использованы интервалы:

/[0-9]/ - совпадает с любой десятичной цифрой от 0 до 9;

/[a-z]/ - совпадает с любым символом нижнего регистра от а до z;

/[a-zA-Z0-9]/ - совпадает с любым символом или цифрой из набора Latin.

Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указаные интервалы (a-z и A-Z).

Специальные символы представляет собой алфавитный символ с обратным слешем \ - признаком особой интерпретации следующего за ним символа:

\d - обозначает любую десятичную цифру;

\D - обозначает любой символ кроме десятичной цифры;

\w - алфавитно-цифровой символ /[a-zA-Z0-9_]/

\W - символ, не являющийся алфавитно-цифровым /[^a-zA-Z0-9_]/

\s - пробельный символ

\S - символ не являющийся пробельным

\n – Символ перевода строки. Строка\nЕще строка

\r – Символ возврата каретки. Текст\r

\t – Символ табуляции. \tКрасная строка

\\ – Обратный слеш

Еще один символ \b забой, совпадает с границами слов: /sa\b/. Противоположный символ, \b, совпадает с чем угодно, кроме границы слова: /sa\b/.

Служебный символ. (точка) означает любой символ поэтому для поиска точки ее надо экранировать символом \. Шаблону соответствует знак точки в строке.

Символы +, *,? и {...}, обозначающие количество повторений отдельного символа или конструкции, заключенной в квадратные скобки, называют квантификаторами. Принцип их действия проще всего пояснить на примерах:

[р]+ означает один или несколько символов р, стоящих подряд;

[р]* означает ноль и более символов р, стоящих подряд;

[р]? означает ноль или один символ р;

[р]{2} означает ровно два символа р, стоящих подряд;

[р]{2,3} означает от двух до трех символов р, стоящих подряд;

[р]{2,} означает два и более символов р, стоящих подряд.

Шаблон /stu+/ совпадает с последовательностью stu, за которой могут следовать дополнительные символы u. Рассмотрим другой пример использования квантификатора: /st{2,4}/. Этот шаблон совпадает с символом s, за которым следуют от 2 до 4 экземпляров символа t. /\w{3}\d?/ - три буквы и необязательная цифра. /\s+Java\s+/ - несколько пробелов до слова или после него. Выражение /[\d]+/ используется для поиска цифровой подстроки, выражение /([\d]+)000/ может использоваться при поиске денежных сумм.

Шаблон /<([\w]+)>/ совпадает с конструкциями, заключенными в угловые скобки, - например, тёгами HTML.

Подстроки в регулярных выражениях можно группировать при помощи круглых скобок: /домен – (by|ru|uk|com)/ соответствует строке домен – by или другой.

Оператор | (или) проверяет совпадение одной из нескольких альтернатив. () – Логическая группировка выражений, которая (может)+ повторяться.

В регулярных выражениях могут использоваться флаги. Флаг i указывает, что поиск по шаблону должен быть нечуствительным к регистру символов, а флаг g- поиск должен быть глобальным. Пример:

/\bJava\b/gi

Методы класса String, поддерживающие регулярные выражения:

search(рег_выраж); возвращает позицию символа в первой найденной подстоке. Например “JavaScript”.search(/script/i) возвращает 4.

Replase(рег_выраж, строка замены); - если указан флаг g, то заменяются все строки с выражением, иначе заменяется только первое найденное вхождение. Text.replace(/Javascript/gi,”JavaScript”). Метод match(рег_выраж) возвращает массив найденных по шаблону подстрок. Метод split(рег_выраж) – разбивает строку на массив строк.





Дата публикования: 2014-11-18; Прочитано: 401 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...