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

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

В 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/ (скачать)