![]() |
Регулярные выражения в SciTE |
|
Документация
FAQ
|
Для поиска по шаблону удобнее использовать регулярные выражения, чем текстовый поиск. Например, для поиска переменных в файлах свойств SciTE, которые выглядят как $(name.subname) можно использовать:
\$([a-z.]+) (или \$\([a-z.]+\) в posix-режиме)
Использование регулярных выражений для замены позволяет производить комплексные преобразования. Например: пару номеров разделенных "," (запятой) можно поменять местами, используя замену с регулярным выражением:
\([0-9]+\),\([0-9]+\) (или ([0-9]+),([0-9]+) в posix-режиме, или даже (\d+),(\d+))
на:
\2,\1
Синтаксис регулярных выражений зависит от параметра find.replace.regexp.posix.
Если он установлен в 0, используется старый Unix-овый синтаксис, где \( и \) обозначают границы подвыражений (подшаблонов), а ( и ) - сами себя.
Если же он установлен в 1, то используется общепринятый синтаксис, где ( и ) обозначают границы подвыражений (подшаблонов), а \( и \), соответственно, круглые скобки.
| № | Выражение | Пояснения | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| [1] | символ | символы соответствуют сами себе, за исключением специальных символов (метасимволов): . \ [ ] * + ? ^ $ и ( ) в posix-режиме. |
||||||||||||||
| [2] | . (точка) |
соответствует любому символу. | ||||||||||||||
| [3] | \ (слеш) |
|
||||||||||||||
| [4] | [...] (набор символов) |
Соответствует одному из символов из набора. Если первый символ "^", то соответствует любому символу, НЕ перечисленному в наборе. Условное обозначение [S-E] используется для задания набора символов от S до E, включительно. Специальные символы "]" и "-" не имеют специального значения, если стоят первыми в наборе символов. Чтобы включить оба этих символа в набор пишите "-" первым: [-]A-Z] (или просто ставьте слеш перед ними [3]).
|
||||||||||||||
| [5] | * |
любое выражение из [1] - [4] (за исключением [8], [9] и [10] форм из [3]), с закрывающим символом "*" соответствует нулевому или большему количеству совпадений выражения данного вида. | ||||||||||||||
| [6] | + |
то же самое, что и [5], но минимум одно совпадение. | ||||||||||||||
|
Обе формы [5] и [6] - "жадные" (они соответствуют наибольшему количеству совпадений из возможных). Но если за ними следует 'ленивый' квантор (?) то [5] и [6] соответствуют наименьшему количеству совпадений. | |||||||||||||||
| [7] | ? |
то же самое, что и [5], но соответствует нулю или единственному вхождению. | ||||||||||||||
| [8] | \(...\) |
регулярное выражение вида [1] - [13], записанное как \(выражение\) (или (выражение) в posix-режиме) используется для создания подвыражений (подшаблонов) и соответствует самому выражению в скобках. Подвыражения (подшаблоны) используются для [9] и для замены по шаблону. Подвыражения (подшаблоны) нумеруются с 1. | ||||||||||||||
| [9] | \1...\9 |
соответствует найденному ранее подвыражению (подшаблону) ([8]). | ||||||||||||||
| [10] | \< \> |
регулярное выражение, начинающееся с "\<" и/или заканчивающееся на "\>", ограничивает шаблон поиска началом слова и/или концом слова. Определено, что слово должно быть строкой, начинающейся и/или заканчивающейся одним из символов A-Z a-z 0-9 и "_". Scintilla расширяет это определение, основываясь на пользовательских настройках. Перед словом и/или после него должно быть хотя бы по одному символу, не входящему в это определение.
| ||||||||||||||
| [11] | \ и следующий за ним один символов d, D, s, S, w или W |
задает класс символов (внешний и внутренний наборы []).
|
||||||||||||||
| [12] | \xHH(где H - шестнадцатеричная цифра) |
определяет символ с данным ASCII кодом. Если цифр после x нет, то соответствует символу "x" |
||||||||||||||
| [13] | составное регулярное выражение xy, где x и y регулярные выражения в виде [1] - [12] соответствует совпадению выражения x и следующим за ним совпадением выражения y. | |||||||||||||||
| [14] | ^ $ |
регулярное выражение начинающееся с символа "^" и/или заканчивающееся на символ "$" ограничевает шаблон поиска началом и/или концом строки. В любом другом месте в выражении символы "^" и "$" трактуются как обычные символы. |
Большая часть документации написана Ozan S. Yigit.
Дополнено Neil Hodgson и Philippe Lhoste.
Все в данном документе находиться в общественном доступе.