Skip to content
Вернуться к началу

# Регулярные выражения

Регулярные выражения описывают шаблоны в строках, которые могут быть использованы для определения того, встречается ли данный шаблон в тексте или нет.

В TreeSize регулярные выражения можно использовать для поиска конкретных файлов и/или папок, соответствующих критериям, заданным регулярными выражениями. Поддерживается список специальных символов.

В следующей таблице приведены наиболее часто используемые синтаксисы и несколько примеров:

Выражение | Синтаксис | Описание | Пример
--- | --- | --- | ---
Любой персонаж. | `.` | Сопоставляет любой символ, кроме перевода строки. | `a.o` соответствует «aro» в «around» и «abo» в «about», но не «acro» в «across».
Ноль или больше | `*` | Сопоставляет ноль или более вхождений предыдущего выражения и делает все возможные совпадения. | `a*b` соответствует «b» в слове «bat» и «ab» в слове «about». `e.*e` соответствует слову «enterprise».
Один или несколько | `+` | Совпадает хотя бы с одним вхождением предыдущего выражения. | `ac+` соответствует словам, содержащим букву «a» и хотя бы одну букву «c», например, «race» и «ace». `a.+s` соответствует слову «доступ».
Запуск строки | `^` | Сопоставляет начало строки. | `^[0-9]` соответствует строкам, начинающимся с цифры.
Конец строки | `$` | Сопоставляет конец строки. | `exe$` соответствует строкам, которые заканчиваются на «exe».
Начало слова | `[[:<:]]` | Сопоставляет только те слова, начало которых находится в этой точке текста. | `[[:<:]]in` соответствует словам, таким как «inside» и «into», которые начинаются с букв «in».
Конец слова | `[[:>:]]` | Совпадает только в том случае, если слово заканчивается в этой точке текста. | `ss[[:>:]]` соответствует таким словам, как «across» и «loss», которые заканчиваются на буквы «ss».
Любой символ из набора | `[]` | Совпадает с любым из символов в строке []. Чтобы указать диапазон символов, перечислите начальный и конечный символы, разделенные тире (-), как в [a-z]. | `be[n-t]` соответствует «bet» в значении «между», «ben» в значении «под» и «bes» в значении «рядом», но не «bel» в значении «под».
Любой символ, которого нет в наборе | `[^...]` | Сопоставляет любой символ, который не входит в набор символов, следующий за `^`. | `be[^n-t]` соответствует «bef» в значении «перед», «beh» в значении «за», «bel» в значении «под», но не «ben» в значении «под».
Или | `|` | Совпадает либо с выражением до, либо с выражением после символа OR (|). Чаще всего используется в группе. | `(sponge|mud)` соответствует «губчатой ванне» и «грязевой ванне».
Эскейп-символ | `\` | Сопоставляет символ, следующий за обратной косой чертой (`\`), как литерал. Благодаря этой функции можно найти символы, которые используются в нотации регулярных выражений, например `{` и `^`. | Выполняется поиск символа `\^`.
Повторите n раз | `{n}` | Сопоставляет n вхождений предыдущего выражения. | `[0-9]{4}` соответствует любой 4-значной последовательности.
Группировка | `()` | Позволяет сгруппировать набор выражений. Если вы хотите найти два разных выражения в одном поиске, вы можете использовать выражение «Группировка» для их объединения. | Если вы хотите найти `[a-z][1-3]` или `[0-9][a-z]`, то объедините их: `([a-z][1-3])|([0-9][a-z])`.

## Другие примеры

Регулярное выражение | Пример использования
--- | ---
`[0-9]` или `\d` | Найдите все файлы/папки, в имени которых есть хотя бы одна цифра.
`a|b` | Найдите все файлы/папки, содержащие «a» или «b» в своем имени.
`[^(A-Za-z)]` | Найдите все файлы/папки, в имени которых есть хотя бы один символ, не входящий в диапазон A-Z или a-z.
`^E[0-9]{7}$` | Найдите все файлы/папки, начинающиеся с буквы «E», за которой следует ровно 7 цифр.
`[A-Za-z]:\\([^\\]+\\){2,4}[^\\]+$` | Найдите все файлы/папки с глубиной папки не менее 2 и не более 4.
`[^\x00-\x7F]` | Найдите все файлы/папки с недопустимыми символами ASCII.
`[^\P{C}]` | Найдите все файлы/папки с символами Юникода, которые не могут быть напечатаны.
`[\xA0]` | Найдите все имена файлов/папок, которые содержат символ неразрывного пробела (Unicode NOBR, U+00A0) вместо обычного символа пробела.
`[~\""#%&\*\:<>\?\/\\{|}]` | Найдите все имена файлов и папок, которые содержат символы, недопустимые на серверах SharePoint.
`^\s+.*` | Найдите все файлы и папки с ведущим пробелом.
`\s+(\.[^.]+)$` | Найдите файлы по расширению, в конце имени которых есть пробел.
`.*\s+$` | Найдите папки с пробелом в конце их названия.

## Средства для создания регулярных выражений

https://regex101.com/ (онлайн)

http://regexpal.com/ (онлайн)

http://sourceforge.net/projects/regexpeditor/ (скачать)

http://sourceforge.net/projects/regextester/ (скачать)

http://sourceforge.net/projects/regaxe/ (скачать)