Регулярные выражения в 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.
Все в данном документе находиться в общественном доступе.