Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Язык регулярных выражений и его применение, шаблоны имен файлов
Регулярное выражение- строка, содержащая спец.символы, интерпретация к-ых такова, что одному рег.выражению может соответствовать целый класс строк опред.структуры. Набор утилит Unix включает редактор sed и утилиту grep, которые используют рег.выражения. Любой обычный символ, например ‘f’, явл-ся атомарным рег.выражением, такому атомарному выражению соответствует подстрока ‘f’. Символы, которые может содержать рег.выражение: 1)символы-заместители (замещают собой некоторую группу символов): а). – замещает любой 1символ (например: а.с-регулярное выражение, abc – соответствует, ac – не соответствует, abdc – не соответствует); б)[] – может находиться перечисление(один из символов в скобках). Например: a[b-f]c – регулярное выражение, abc – соответствует рег.выражению, acc – соответствует, agc – не соответствует, a1c – не соответствует. в)[^…] – символ внутри является отрицанием, набор символов за ^ является недопустимым. Например: a[^0-9]c – регулярное выражение, abc – соответствует, acc – соответствует, agc – соответствует, a1c – не соответствует. г)-(дефис) – для мн-ва задает диапазон. Например: [a-zA-Z]-рег.выр-ие, этому р.в. соотв-ет подстрока, сод-ая любой лат.символ. 2)символы – квантификаторы(повторители): а)* – " множитель" (задает допустимое число повторений символа перед *(от 0 и до допустимого числа). Например: a*c – регулярное выражение, c – соответствует, ac – соответствует, aac – соответствует, abc – нет. б).* - любая подстрока любой длины. в){минимум, максимум} – интервал-повторитель, ставится после атомарного выражения и задает диапазон повторения соотв.строк. Например: (he){2, 4}-рег.выражение, ему соотв-ет hehe, hehehe, hehehehe. Если выражение заключено в круглые скобки, то оно принимает атомарность г)? – символ-повторитель, допустимое число повторений 0, 1 3)позиционирующие символы – определяют нек.фиксированные цепочки, которые привязываются к строке(они описывают положение цепочки в строке): а)^ – цепочка в начале строки. Например: ^a*c – регулярное выражение, abc – не соотв-ет(ни одна последовательность не находится в начале строки), а – не соотв-ет, c – соотв-ет, ааас56 – соотв-ет. б)$ – конец строки, этому р.в. соотв-ют все подстроки, стоящие в конце строки.
Поиск в ОС Unix осущ-ся утилитами: -fgrep – не исп-ет р.в. -grep – интерпретирует 1-ый пар-р как базовое р.в. и выдает строки, которые сод-ат подстроку, соотв-ую этому р.в. egrep-работает с расширенными р.в. Возвр.значение: 0-образец найден, 1-образец не найден, 2-ошибка Пример: $ grep ^Please *.txt – ищет во всех текстовых файлах подстроки, которые начинаются со слова Please.
Потоковый редактор sed явл-ся текст.редактором, выполняющим операции редактирования в ком.режиме. Вызов осущ-ся в соответствии с форматом: $ sed ‘command’ [files] Команда подстановки записывается в след.виде: [addr1[, addr2]]s/expression/substitute/[flags] – обрабатывает строки из заданного диапазона, заменяя в каждой строке первое вхождение последовательности, соответствующей р.в. expression на посл-ть substitute. Пример: $ sed ‘/10, 40/s[Pp]etrov/IvanD.Petrov/g’ oldfile > newfile Работаем с файлом oldfile, результаты перенаправляем в файл newfile. Изменения производятся с 10 по 40 строку файла, меняем petrov и Petrov на IvanD.Petrov. ключ g осущетсвляет глоб.замену всех вхождений. Шаблоны файлов: * ? -1 любой символ []-наборы символов Например: ch[gmo]?? – после-ть будет из 5 символов. В квадратных скобках также может указываться диапазон.
|