русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Работа с регулярными выражениями


Дата добавления: 2015-07-09; просмотров: 495; Нарушение авторских прав


 

Регулярные выражения используются с методами test и exec класса RegExp и с методами match, replace, search и split объекта String. Информация о ходе выполнения регулярного выражения хранится в глобальном объекте RegExp, которому можно обратиться после выполнения регулярного выражения.

 

Методы класса RegExp

 

Метод Описание
exec Метод объекта RegExp, выполняющий поиск совпадения в строке. Возвращает массив информации. Пример Js43
test Метод объекта RegExp, тестирующий на совпадение в строке. Возвращает true или false.
match Метод объекта String, выполняющий поиск совпадения в строке. Возвращает массив информации или null при отсутствии совпадений. Пример Js38, Js39
search Метод объекта String, тестирующий на совпадение в строке. Возвращает индекс совпадения или -1, если поиск завершился ничем. Пример Js40
replace Метод объекта String, выполняющий поиск совпадения в строке и замещающий совпавшую подстроку замещающей подстрокой. Пример Js41
split Метод объекта String, использующий регулярное выражение или фиксированную строку для разбивки строки на массив подстрок. Пример Js42

 

Примеры

1.Рассмотримфрагмент скрипта:

 

var result, re, str;

str = "Here is my email: glove@linux.org and here is his: hate@windows.com";

re = new RegExp("\w+(\.?\w+)?@\w+\.\w+");

result = str.match(re);

В result будет массив электронных адресов полученных из строки str.

 

2. К глобальному объекту RegExp можно обращаться непосредственно для доступа к результатам поиска с использованием регулярного выражения. Этот объект создается самим интерпретатором и доступен всегда. Формат доступа к нему выглядит так:

RegExp.своиство. Все свойства этого объекта доступны только для чтения.



 

Свойства глобального объекта RegExp.

 

$n Здесь n - номер подвыражения (от 1 до 9), значение которого требуется получить. Подвыражения с номерами, большими 9, можно получить, используя методы match и exec.
index Возвращает позицию найденной подстроки в строке.  
input | & Возвращает строку, где производится поиск.
lastIndex Позиция в строке, откуда начинается поиск.
lastMatch | $& Возвращает последнюю найденную подстроку.
lastParent | $+ Возвращает последнюю найденную группу символов, если в регулярном выражении использовались подвыражения.
lastСontext |$` Возвращает строку, составленную из всех символов от начала исходной строки до последней найденной подстроки, не включая ее.
rightContext | $' Возвращает строку, составленную из всех символов от последней найденной подстроки, не включая ее, до конца исходной строки.

 

 

Пример.

Рассмотрим фрагмент скрипта, выделяющий протокол адрес и имя файла из строки ссылки:

var re, str, protocol, address, filename, result;

str = "http://www.somedomain.ru/index2.html"

re = new RegExp("((\w+):\/\/)?([^\/]+)(.*)?", "i");

result = re.exec(str);

if (result != null)

{

protocol = RegExp.$2;

address = RegExp.$3;

filename = RegExp.$4;

...

}

Здесь для доступа к результату применения регулярного выражения используется глобальный объект RegExp. Свойство RegExp.$n –позволяет нам получить подвыражение, сохранённое в круглых скобках. Подвыражения в скобках нумеруются в слева направо.

В регулярном выражении мы использовали вложенные друг в друга подвыражения. В этом случае из них сохраняется сначала внешнее, а затем внутреннее. Это нами сделано для того, чтобы выделить из группы символов "http://" обозначение протокола "http". А группу "http://", сохраненную под номером 1, можно просто потом не использовать.

Строка result = re.exec(str) запускает "разборку".

С помощью условного оператора if (result != null)……… проверяем, совпало ли наше регулярное выражение с исходной строкой, то есть правилен ли наш WEB-адрес.

 

 



<== предыдущая лекция | следующая лекция ==>
Sales1.xls | Regular Expressions


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.578 сек.