Нормальные символы состоят из всех тех напечатанных и не напечатанных символов, которые явно не указаны как метахарактеры. Это включает в себя все перспективные и строчные символы алфавита, все числа, все знаки препинания и некоторые символы.
Самое простое регулярное выражение - это единственный нормальный символ, который соответствует самому символу в поисковой строке. Например, одноразовый шаблон «A» может соответствовать букве «A», которая появляется в любом месте поисковой строки. Вот несколько примеров одноразовых шаблонов регулярного выражения:
/a/ /7/ /M/Эквивалентное регулярное выражение VBScript Одно-характерное выражение:
a 7 MНесколько отдельных символов могут быть объединены вместе, чтобы получить большее выражение. Например, следующее регулярное выражение JScript-это ничто иное, но выражение, созданное путем комбинирования экспрессии с одним символом «a», '7' и 'm'.
/a7M/Эквивалентное выражение VBScript:
a7MОбратите внимание, что здесь нет оператора подключения. Все, что вам нужно сделать, это поставить одного персонажа за другим персонажем.
Есть много метахарактеров, которые нуждаются в специальной обработке при попытке соответствовать им. Чтобы соответствовать этим особым персонажам, вы должны сначала избежать их, то есть использовать обратную черту (/) перед ним. Следующая таблица дает эти специальные персонажи и их значения:
| Специальные персонажи | иллюстрировать |
|---|---|
| $ | Соответствует конечной позиции входной строки. Если установлено многослойное свойство объекта Regexp , $ также совпадает с '/n' или '/r'. Чтобы соответствовать самому персонажу $, используйте /$. |
| () | Знает начальные и конечные позиции подэкспрессии. Подоспрессии могут быть получены для последующего использования. Чтобы соответствовать этим символам, используйте /(и /). |
| * | Соответствует предыдущему суб -экспрессии ноль или несколько раз. Чтобы соответствовать персонажу *, используйте / *. |
| + | Соответствует предыдущей субэкспрессии один или более раз. Чтобы соответствовать символу +, используйте / +. |
| Полем | Сопоставьте любой отдельный символ, кроме разрыва линии/n. Чтобы соответствовать., Использовать /. |
| [ | Отметьте начало выражения кронштейна. Чтобы соответствовать [, использовать /[. |
| ? | Соответствует предыдущему суб-экспрессии ноль или один раз, или указывает не-зеленого квалификатора. Чтобы соответствовать персонажу? |
| / | Отметьте следующий персонаж как особый персонаж, или примитивный персонаж, или обратную ссылку, или восьмиугольный экономный персонаж. Например, «N» соответствует персонажу 'n'. '/n' соответствует персонажу Newline. Последовательность '//' совпадает/и '/(' совпадает (. |
| ^ | Соответствует начальному положению входной строки, если не используется в квадратном выражении кронштейна, после чего это означает, что сбор символов не принимается. Чтобы соответствовать самому символу, используйте / ^. |
| { | Отметьте начало выражения квалификатора. Чтобы соответствовать {, использовать /{. |
| | | Укажите выбор между двумя элементами. Чтобы соответствовать |, использовать /|. |
Есть много полезных непечатных символов, которые должны иногда использоваться. В следующей таблице показаны последовательности побега, используемые для представления этих не напечатанных символов:
| характер | значение |
|---|---|
| /c x | Соответствует элементам управления, указанным x . Например, /CM соответствует возврату CONTROL-M или Carriage. Значение X должно быть одним из AZ или AZ. В противном случае, рассматривайте C как оригинальный символ 'c'. |
| /f | Сопоставьте перерыв на странице. Эквивалент /x0c и /cl. |
| /n | Сопоставьте новый персонаж. Эквивалент /x0a и /cj. |
| /r | Сопоставьте персонаж возврата каретки. Эквивалент /x0d и /cm. |
| /с | Сопоставьте любые пробелы, включая пробелы, вкладки, разрывы страниц и т. Д. Эквивалентно [/f/n/r/t/v]. |
| /С | Сопоставьте любые не-белые символы. Эквивалентно [^/f/n/r/t/v]. |
| /т | Сопоставьте символ вкладки. Эквивалент /x09 и /ci. |
| /v | Сопоставьте вертикальную вкладку. Эквивалент /x0b и /ck. |
Период (.) Соответствует любому отдельному или не напечатанному символу в строке, за исключением разрывов линий (/n). Следующие регулярные выражения JScript могут соответствовать «AAC», «ABC», «ACC», «ADC» и т. Д., А также могут соответствовать «A1C», «A2C», AC 'и A#C:
/ac/Эквивалентное регулярное выражение VBScript:
acЕсли вы попытаетесь сопоставить строку, содержащую имя файла, где период (.) Является частью входной строки, вы можете префикс периода в обычном выражении с символом BackSlash (/) для достижения этого. Например, следующее регулярное выражение JScript может соответствовать «fileName.ext»:
/filename/.ext/Для VBScript эквивалентное выражение выглядит так:
filename/.extЭти выражения все еще довольно ограничены. Им разрешено только соответствовать любому отдельному персонажу. Во многих случаях это очень полезно для сопоставления специальных символов из списка. Например, если входной текст содержит названия глава, обозначенные числами как глава 1, глава 2 и так далее, вы можете найти эти заголовки главы.
Вы можете поместить один или несколько отдельных символов в квадратный кронштейн ([и]), чтобы создать список для соответствия. Если символы заключены в скобки, список называется выражением кронштейна . В скобках, как и везде, обычные персонажи представляют себя, то есть они соответствуют одному из себя, которая появляется в входном тексте. Большинство особых персонажей теряют свое значение, когда они находятся в выражениях в скобках. Вот некоторые исключения:
Символы, содержащиеся в выражении кронштейна, соответствуют только одному отдельному символу, где выражение кронштейна находится в регулярном выражении. Следующие регулярные выражения JScript могут соответствовать «главе 1», «Глава 2», «Глава 3», «Глава 4» и «Глава 5»:
/Chapter [12345]/Чтобы соответствовать тому же заголовок главы в VBScript, используйте следующее выражение:
Chapter [12345]Обратите внимание, что позиционные отношения между словом «глава» и следующими пространствами и символами в скобках исправлены. Следовательно, выражение кронштейна используется только для указания набора символов, которые удовлетворяют позиции единого символа сразу после слова «глава» и пространство. Вот девятая позиция персонажа.
Если вы хотите использовать диапазон вместо самого символа, чтобы представлять символ, который подходит для сопоставления, вы можете использовать дефис для отделения начальных и конечных символов диапазона. Значение символа каждого символа будет определять его относительный порядок в диапазоне. Следующее регулярное выражение JScript содержит выражение диапазона, эквивалентное списку скол, показанного выше.
/Chapter [1-5]/Выражения той же функции в VBSCIPT следующие:
Chapter [1-5]Если диапазон указан таким образом, как начало, так и конечные значения включены в этот диапазон. Одна вещь, которую нужно отметить, это то, что начальное значение в сортировке Unicode должно быть до конечного значения.
Если вы хотите включить дефиса в выражение кронштейна, вы должны использовать один из следующих методов:
[/-] [-az] [az-] [!--] [!-~]Точно так же, размещая карету (^) в начале списка, вы можете найти всех символов, которых нет в списке или диапазоне. Если каретка появляется в другом месте в списке, она совпадает без особого значения. Следующее регулярное выражение JScript соответствует названию главы с номером главы, превышающим 5:
/Chapter [^12345]/Для VBScript используйте:
Chapter [^12345]В примере, показанном выше, выражение будет соответствовать любому числовому символу в девятой позиции, за исключением 1, 2, 3, 4 или 5. Итак, «Глава 7» - это совпадение, как и «Глава 9».
Приведенное выше выражение может быть представлено дефисом (-). Для JScript:
/Chapter [^1-5]/Или, для VBScript, это:
Chapter [^1-5]Типичное использование выражений кронштейнов состоит в том, чтобы указать совпадение с любыми верхними или строчными алфавитными символами или любом числом. Следующее выражение JScript дает этот матч:
/[A-Za-z0-9]/Эквивалентное выражение VBScript:
[A-Za-z0-9]