Толковый словарь Collins Cobuild English Language Dictionary да©т следующее толкование слова REGULAR: простое, обычное, повторяющееся без изменения, удовлетворяющее простым правилам. Представляется, что такое толкование исчерпывающим образом описывает смысл термина REGULAR EXPRESSIONS - регулярные выражения.
Данная глава содержит следующую информацию:
Некоторые метасимволы могут иметь одно значение в одних программах и совершенно иное - в других. Те метасимволы, которые используются в конкретной программе помечены звездочкой в нижеприведенной таблице.
Символ | ed | ex | vi | sed | awk | grep | egrep | Смысл |
. (точка) | * | * | * | * | * | * | * | Удовлетворяет любому символу. |
* (звездочка) |
* | * | * | * | * | * | * | Удовлетворяет нулевому или большему числу появлений. |
E (крышка) |
* | * | * | * | * | * | * | Должно быть в начале строки. |
$ (доллар) |
* | * | * | * | * | * | * | Должно быть в конце строки. |
C ╧(левый слеш) |
* | * | * | * | * | * | * | Далее идет escape. |
[ ] |
* | * | * | * | * | * | * | Один из набора. |
C( C) |
* | * | * | Запомнить шаблон для последующего использования. |
CB CD |
* | * | * | Удовлетворить числу появлений. |
CC CE |
* | * | Должно быть на границе слова. |
+ | * | * | Одно или более появление. |
? |
* | * | Одно или нуль появлений. |
C |
* | * | Разделить два шаблона, чтобы показать, что требуется сравнить с тем или с другим шаблоном. |
( ) |
* | * | Группировать выражения. | |||||
В ed, ex и sed могут использоваться метасимволы, которые имеют значение в заменяющей подстроке:
Символ | ex | sed | ed | Действие |
C (левый слеш) | * | * | * | Далее следует символ escape. |
Cn
|
* | * | * | Использовать подстроку ранее запомненную в C( C)131 . |
& (амперсанд) | * | * | Использовать предыдущий шаблон поиска. |
E133 (волнистая черточка) |
* | Использовать предыдущую заменяющую подстроку. |
C135 u или CU< |
* | Перевести все символы в верхний регистр. |
C138 l или CL< |
* | Перевести все символы в нижний регистр. | ||
C141 E< |
* | Отменить предыдущую команду CU или CL. | ||
C144 e< |
* | Отменить предыдущую команду Cu или Cl. | ||
|
Следующие символы имеют специальное значение только в шаблонах поиска.
<
E | Удовлетворяет любому символу исключая newline. |
<
* | Удовлетворяет любому числу (или нулю) символов, которые следуют за одиночным символом. Предшествующий одиночный символ может также быть регулярным выражением, например, раз . ╧(точка) обозначает любой символ, то выражение .* обозначает любое количество любых символов. |
<
E | Обозначает последующее регулярное выражение в начале строки. |
<
$ | Обозначает предшествующее регулярное выражение в конце строки. |
<
B D | Обозначает любой символ из тех, что заключены в квадратные скобки. Знак переноса в скобках (минус) означает ряд последовательных символов. Знак E (крышка) в качестве первого символа в скобках играет роль отрицания: обозначает любые символы, которые не входят в список. Знак минус или правая (закрывающая) скобка в качестве первого символа рассматривается как члены списка. |
<
BE D | Обозначает любые символы не входящие в список, ограниченный скобками. |
<
CBn,mCD | Обозначает ряд появлений одиночного символа, который непосредственно предшествует этому выражению. Предшествующий символ тоже может быть регулярным выражением. Выражение CBn<CD обозначает ровно n появлений, выражение CBn,CD означает как минимум n появлений, выражение CBn,m<CD обозначает, что число появлений не меньше n и не больше m. При этом, n и m должны быть от 0 до 256. |
<
C | Выключить специальное значение последующего символа. |
<
C( C) | Сохранить подстроку, заключенную между C( и C) в специальном месте для последующего использования. До девяти подстрок может быть сохранено в одной строке. Сохраненные подстроки могут быть вызваны и использованы в последующих подстановках посредством escape выражений от C1 до C9. |
<
CC CE | Обозначает символы в начале ( CC) или в конце ( CE) слова. |
<
+ | Обозначает одно или больше появлений предшествующего регулярного выражения. |
<
? | Обозначает одно или нуль появлений предшествующего регулярного выражения. |
<
C | Обозначает регулярное выражение определенное до или после. |
<
( ) | Группирование регулярных выражений. |
Последующие символы имеют специальное значение только в заменяющих подстроках.
<
C | Выключить специальное значение последующего символа. |
<
Cn | Взять n-ную подстроку ранее сохраненную с помощью выражений C ( и C ). Здесь n есть целое от 1 до 9. Самое левое выражение имеет номер 1. |
<
& | Использовать поисковый шаблон в текущей заменяющей подстроки. |
<
E | Использовать предыдущую заменяющую подстроку в текущей заменяющей подстроке. |
<
Cu | Преобразовать первый символ заменяющей подстроки в верхний регистр. |
<
CU | Преобразовать всю заменяющую подстроку в верхний регистр. |
<
Cl | Преобразовать первый символ заменяющей подстроки в нижний регистр. |
<
CL | Преобразовать всю заменяющую подстроку в нижний регистр. |
<
Шаблон | < |
<
big | < |
<
Ebig | < |
<
big$ | < |
<
Ebig$ | < |
<
[Bb]ig | < |
<
b[aeiou]g | < |
<
b[Eaeiou]g | < |
<
E...$ | < |
<
b.g | < |
<
EC. | < |
<
E[E.] | < |
<
EC.[a-z][a-z] | < |
<
E$ | < |
<
EC.[a-z][a-z]CB2CD209 | < |
<
bog* | < |
<
0CB3,CD | < |
<
[0-9]CB2CD-[0-9]CB5CD-[0-9]CB1CD | < |
<
Команда | Результат |
<
s/.*/(&)/ | Заменить всю строку на нее же, но в скобках. |
<
s/.*/mv & &.old/ | Изменить список слов (одно слово на строку) в команде mv. |
<
/^$/d | Удалить пустые строки, т.е. строки содержащие один символ newline. |
<
/[ tab]*$/d | Удалить пустые строки, а также строки содержащие пробелы или табуляторы. |
<
s/*//g | Превратить два и более пробелов в один пробел. |
<
s/Yes/No/ | Заменить слова в строке. |