СимволыОписание
\Следующий символ будет являться специальным символом или, наоборот, литералом. Например, n означает символ "n", а "\n" означает символ новой строки. Последовательности \\ соответствует символ "\", а \( — символ "("
^Начало строки
$Конец строки
*Предыдущий символ повторяется любое число раз (в том числе ни разу). Например, выражению zo* соответствуют как "z", так и "zoo"
+Предыдущий символ повторяется не менее одного раза. Например, выражению zo+ соответствует "zoo", но не "z"
?Предыдущий символ повторяется не более одного раза
. (точка)Любой символ, кроме перевода строки
х|уЛибо символ "х", либо символ "у". Например, выражению z|food соответствуют "z" или "food"
[xyz]Множество символов. Означает любой один символ из набора символов, заключенных в квадратные скобки. Например, выражению [abc] соответствует символ "а" в слове "plain"
[a-z]Диапазон символов. Означает любой один символ из заданного диапазона. Например, выражению [a-z] соответствует любая буква английского алфавита в нижнем регистре
[^m-z]Означает любой символ, не входящий в заданный диапазон. Например, выражению [^m-z] соответствует любой символ, не попадающий в диапазон символов от "m" до "z"
\bГраница слова, т.е. позиция между словом и пробелом. Например, выражению er\b соответствует символ "er" в слове "never", но не в слове "verb"
Позиция внутри слова (не на границе). Например, выражению еа*r\B соответствует подстрока "ear" в "never early"
\dСимвол, обозначающий цифру. Эквивалентно [0-9]
\DЛюбой символ, кроме цифры. Эквивалентно [^0-9]

Метасимволы можно употреблять совместно, например, комбинация ".*" означает любое число любых символов.

Замечание

Более подробную информацию о регулярных выражениях можно найти, например, в документации Microsoft по языку VBScript.

В качестве примера использования регулярных выражений в листинге 5.18 приведен сценарий FindRegExp.js, в котором производится поиск в подкаталоге ForFind текущего каталога всех файлов, имена которых начинаются с символов "П", "А" или "И" и имеют расширение txt.

Для получения доступа к каталогу ForFind в сценарии используется метод GetFolder объекта FileSystemObject:

//Создаем объект WshShell

WshShell=WScript.CreateObject("WScript.Shell");

//Создаем объект FileSystemObject

FSO=WScript.CreateObject("Scripting.FileSystemObject");

//Создаем объект Folder для доступа к подкаталогу ForFind

//текущего каталога

Folder = FSO.GetFolder(WshShell.CurrentDirectory+"\\ForFind");

Поиск нужных файлов будет выполняться с помощью следующего регулярного выражения:

//Создаем регулярное выражение (объект RegExp)

RegEx=new RegExp("^[ПАИ].*\.txt$", "i");

Сам поиск и вывод имен найденный файлов производятся в функции FindFilesInFolder(Fold, RegEx). Здесь сначала инициализируются счетчик найденных файлов и переменная, в которой будут сохраняться имена найденных файлов, а также создается объект Enumerator (переменная Files) для доступа к файлам каталога Fold:

Перейти на страницу:

Похожие книги