Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Язык регулярных выражений и его применение, шаблоны имен файлов






Регулярное выражение- строка, содержащая спец.символы, интерпретация к-ых такова, что одному рег.выражению может соответствовать целый класс строк опред.структуры. Набор утилит 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 символов.

В квадратных скобках также может указываться диапазон.

 

 







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.