» Синтаксис регулярных выражений. Краткий справочник : Берлога инженера - бесплатные программы - стереофото - справочные материалы - обои для рабочего стола


Синтаксис регулярных выражений. Краткий справочник

Ниже помещаю краткий справочник по регулярным выражениям. Применение регулярных выражений позволяет сделать поиск и замену в тексте максимально эффективными.

Отмечу, что синтаксис регулярных выражений крайне сложен и многообразен. Ему посвящено много серьёзных изданий. В этой же табличке приведены самые употребимые метасимволы регулярных выражений с примерами их применения. Таблица составлялась по правилам построения регулярных выражений в ряде широко известных программ. Чем темнее строка таблицы, тем более широко распространён метасимвол.

Для ленивых - достаточно запомнить всего восемь самых тёмных строк таблицы, и будьте уверены - практически любая система поиска по регулярным выражениям будет поддерживать приведённые в них метасимволы.

Символ Синоним Описание Примеры OO TE
.  
Любой символ .+” - любая ненулевая строка в кавычках + +
^  
Начало строки ^[а-я] – абзац, начинающийся со строчной буквы + +
$  
Конец строки ^$ - пустая строка + +
[ ]  
Набор символов 0x[0a-c] – числа, начинающиеся с 0×0, 0xa, 0xb или 0xc + +
[^ ]  
Набор символов КРОМЕ 0×0[1-9][^0-9a-f] – любое байтовое число от 1 до 9 + +
|  
Альтернатива (ИЛИ) рабоч(его|ее) - ищем “рабочего” или “рабочее” +  
( ) \( \) - SciTE Выделение подвыражения (рабоч)(его|ее) – два подвыражения +  
\n  
Использование подвыражения \(0x.., *\)\1 – два одинаковых байта рядом в массиве  
+
* {0,} 0 и более раз ^.* - выделение строк (пустых и не пустых) + +
+ {1,} 1 и более раз ^.+ - выделение непустых строк (абзацев) + +
? {0,1} 0 или 1 мест[^ ]? - ищет “мест”, “места”, “место”… +  
“Не жадный” режим 0{2,4} в строке нолей найдёт “0000”, а 0{2.4}? - “00”  
 
Применяется с другими метасимволами: *? +? ?? {n}?  
 
{n}  
Итератор “n раз” 0x[0-9a-f]{2}[^0-9a-f] – найдёт только байтовые числа +  
{n,}  
Итератор “не менее n раз” ^.{40,} - абзацы, в которых не менее 40 символов +  
{n,m}  
Итератор “не менее n, не более m” \<[:alpha:]{2,4}\> - искать слова от 2 до 4 символов +  
\xnn  
Шестнадцатиричное значение \x20 – пробел +  
\xnnnn  
Шестнадцатиричное (Unicode) \x0410 – буква “А” русского алфавита +  
\t \x09 TAB ^\t – найти строку, начинающуюся с TAB + +
\n \x0A NL  
 
 
\s [ \t\n\r\f] Разделитель  
 
 
\S
[^ \t\n\r\f] НЕ разделитель  
 
 
\d [0-9] Цифра  
 
 
\D
[^0-9] НЕ цифра  
 
 
\w [a-zA-Z0-9_] Символ слова  
 
 
\W
[^\w] НЕ символ слова  
 
 
\b  
Граница слова  
 
 
\B
 
НЕ граница слова  
 
 
\<  
Начало слова \(\< - найти круглую открывающую скобку в начале слова + +
\>  
Конец слова [a-z_]+\>\[\] - найти объявление массива + +
\A
 
Начало текста  
 
 
\Z
 
Конец текста  
 
 
[:digit:]? \d Цифра  
+  
[:space:]? [ ] Пробел  
+  
[:print:]?  
Все печатаемые и пробелы  
+  
[:cntrl:]? \t Непечатаемые (без пробелов)  
+  
[:alnum:]? [a-zA-Z0-9] Цифра или буква  
+  
[:alpha:]? [a-zA-Z] Буква  
+  
[:lower:]?  
Буква в нижнем регистре  
+  
[:upper:]?  
Буква в верхнем регистре  
+  
Для того, чтобы искать символ, совпадающий с метасимволом, его следует предварить обратной косой чертой - \\ \^ \+
Чтобы определить для поиска в перечне символ [ или ] , нужно поместить их в начало перечня, но лучше предварить косой чертой - []a-z] [a-z\]]
Чтобы определить для поиска в перечне символ - , нужно поместить его в начало или конец перечня, но лучше предварить косой чертой
Символ | не работает в перечне, поэтому б[о|а]р найдёт “бор”, “бар” или “б|р”.
Символы для замены
&  
Найденное выражение (OpenOffice) Find: [:digit:]В , replace: &ольт. 5В заменится на 5Вольт +  
\( \)  
Подвыражение (SciTE) Find: \(//\)\(.*\) - находим строковый комментарий в С  
+
\n

 
Найденное выражение (SciTE) Replace: /*\2*/ - замена строкового на блочный  
+
( )  
Подвыражение Распространённый способ выделения подвыражения  
 
$n  
Найденное выражение Ещё один синтаксис подстановки подвыражения  
 
 
OpenOffice OO  
 
SciTE  
TE

 Добавьте на news2.ru     Занесите в del.icio.us

Читайте также:
No related posts





Один комментарий to “Синтаксис регулярных выражений. Краткий справочник”

  1. Дмитрий :

    Все оч. класно. Только я не вижу здесь самое важное: Нет символа абзаца. А именно его приходится чаще всего искать и заменять.

Оставить комментарий