Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО (Лупин) / Лабы / Лабы по Linux / Лабораторная работа 2.doc
Скачиваний:
64
Добавлен:
17.04.2013
Размер:
77.31 Кб
Скачать

Регулярные выражения

Назначение:Регулярные выражения позволяют задавать возможные варианты образца, а также образцы, расположенные в различных местах текста. Можно искать в тексте образцы, имеющие разные начальные и конечные буквы, а также указывать на текст, стоящий в наЁчале или в конце строки. К специальным символам регулярных выражений относятся

^,$,*, .и[ ]. Знаки^и$ обозначают начало и конец строки. Звездочка соответствует повторяющимся символам, точка – одиночным символам, а квадратные скобки – группам символов.

Примеры:

Для того чтобы обазначить образец, стоящий в начале строки, необходимо непосредственно перед образцом поставить знак ^. Он делает начало строки частью искомого образца.

^consistens

consistensofastream

Для образца стоящего в конце строки:

such$

be used to create such

Точка – это специальный символ, который обозначает один какой-либо символ. Так по образцу b.d будут найдены комбинации , состоящие из трех букв. Первой будет буква b, третьей d, а второй любая буква. Если указать простоb., безd, то будут найдены все комбинации, начинающиеся с буквыbи состоящие минимум из одного символа.

Специальный символ * обозначает несколько ( ноль и более) следующих друг за другом экземпляров обозначенного им символа. Этот символ ставиться в образце перед звездочкой. Звездочку можно рассматривать как оператор, который в качестве операнда берет стоящий перед ним символ. Этот специальный символ обеспечивает поиск повторяющихся экземпляров заданного символа. Т. е. если задать с*, то будут найдены : с сс ссс ссс и т.д.

Образец .*совпадает с любым символом в строке. Практически это обозначает всю строку целиком. Если у вас есть контекст для.*, то можно обозначат различные сегменты строки. Образец поставленный перед специальными символами.*указывает на часть строки, начиная с экземпляра образца. Образец, поставленный перед этими специальными символами, обозначает начало строки до него. Символы.*, стоящие между образцами, указывают на весь промежуточный текст, находящийся в строке между этими образцами.

Если нужно найти не определенный символ и не любой символ, а некоторую группу символов, то используются квадратные скобки. Эти специальные символы служат для обозначения группы возможных символов. Символы этой группы заключаются в квадратные скобки и перечисляются один за другим. Символы , совпадающие с перечисленными в этой группе считаются найдеными.

doc[agN]

list of documents совпадения нет

docadocb

docg docNdocP

week[245]

week2weather

reports on week4

week1 reports совпадения нет

Задания к лабораторной работе.

  1. Создайте текстовые файлы N1иN2. С помощью фильтров скопируйте содержимое файловN1иN2в один выходной поток. И сохраните выходные данные в файлеN3. Проверьте правильность написания слов в файлеN3и перенаправьте сообщения об ошибках в файлN4.error.

  1. Выведите на экран все строки файла N3, содержащие слово «а». Сохраните вывод в файлеgrepped. Используя фильтры, выведите количество строк и символов этого файла , затем отсортируйте его таким образом, чтобы не было разделения текста на абзацы и сохраните выходную информацию в файлеN4. Сравните файлN3с файломN4(фильтром).

  1. Создайте текстовый файл. Выведите строку в которой содержиться текст

а.) в конце стороки, состоящий из слова weekи еще одного символа

б.) между символами aиb

в.) отличный от цифр, стоящий в начале строки и начинающийся на с

Соседние файлы в папке Лабы по Linux