Таблица П.1.1: Регулярные выражения редактора
Символу перевода строки не соответствует ни одно регулярное выражение.
Образец | Соответствие |
/^$/
| пустая строка, т.е. только конец строки |
/./
| непустая, т.е. по крайней мере один символ |
/^/
| все строки |
/thing/
| thing где либо в строке |
/^thing/
| thing в начале строки |
/thing$/
| thing в конце строки |
/^thing$/
| строка, состоящая лишь из thing
|
/thing.$/
| thing плюс любой символ в конце строки |
/thing\.$/
| thing. в конце строки |
/\/thing\//
| /thing/ где либо в строке |
/[tT]hing/
| thing или Thing где либо в строке |
/thing[0-9]/
| thing , за которой одна цифра |
/thing[^0-9]/
| thing , за которой не цифра |
/thing[0-9][^0-9]/
| thing , за которой цифра и не цифра |
/thing1.*thing2/
| thing1 , затем любая строка, затем thing2
|
/^thing1.*thing2$/
| thing1 в начале и thing2 в конце |
Регулярные выражения, использующие
*
, выбирают самое левое совпадение с образцом до тех пор, пока это возможно. Отметим, что
x*
может соответствовать нулю, а
xx*
одному или более символу.
Глобальные команды
Глобальные команды
g
и
v
управляют вызовом одной или большего числа других команд, выполняющих преобразования в множестве строк, выбранных регулярным выражением. Команда
g
наиболее часто используется для печати, подстановки или удаления множества строк:
<i>m</i>,<i>n</i>g/re/cmd
| Для всех строк между m и n, которые соответствуют re выполнить cmd |
<i>m</i>,<i>n</i>v/re/cmd
| Для всех строк между m и n, которые не соответствуют re выполнить cmd
|
Командам
g
и
v
могут предшествовать номера строк, ограничивающие диапазон; по умолчанию принимается диапазон
1,$
:
g/.../p
| Печатать все строки, соответствующие регулярному выражению ...
|
g/.../d
| Убрать все строки соответствующие ...
|
g/.../s//repl/p
| Заменить первое вхождение ... в каждой строке на 'repl ', печатать измененные строки |
g/.../s//repl/gp
| Заменить каждое ... на 'repl ' , печатать измененные строки |
g/.../s/pat/repl/
| В строках, соответствующих ... , заменить первую 'pat ' на 'repl ' |
g/.../s/pat/repl/p
| В строках, соответствующих ... , заменить первую 'pat ' на 'repl ' и печатать |
g/.../s/pat/repl/gp
| В строках, соответствующих ... , заменить все 'pat ' на 'repl ' и печатать |
v/.../s/pat/repl/gp
| В строках, не соответствующих ... , заменить все 'pat ' на 'repl ' и печатать |
v/^$/p
| Печатать все непустые строки |
g/.../cmd1\cmd2\cmd3
| Выполнять составные команды с единственной g , присоединить \ к каждой cmd кроме последней |