Для задания множеств символов используется также метасимвол: [ (в паре с ]). Алгоритм сравнения, встретив [ считает, что далее должен быть один из символов, находящихся между [ ].
Примеры:
Шаблон
Описание
/\w\w\w:/
Подстроки из 4 символов, которые состоят из трех словарных символов и заканчиваются :.
/[abcd]\S\S\S/
Подстроки из 4 символов, которые начинаются с a, b, c, d и заканчиваются тремя непустыми символами.
/[a-kA-K]123/
Подстроки из 4 символов, которые начинаются с любой буквы от a до k или от A до K и заканчиваются 123.
/.123/
Подстроки из 4 символов, которые начинаются с любого символа и заканчиваются 123.
/\.123/
Подстроки .123.
/%[0-9А-Яа-я]/
Подстроки из 2 символов, которые начинаются с % и заканчиваются цифрой или любой русской буквой.
Символ -, если он встретился внутри квадратных скобок, задает интервал.
/%[^0-9А-Яа-я]/
Подстроки из 2 символов, которые начинаются с % и НЕ заканчиваются цифрой или любой русской буквой.
Символ ^, если он встретился сразу после квадратной скобки, означает «все символы», кроме перечисленных в квадратных скобках.
/\[abc]/
Подстроки вида [abc], поскольку квадратные скобки здесь задают не множество символов, а воспринимаются как обычные квадратные скобки, поскольку перед [ стоит \.
После символа может быть задано ожидаемое количество повторов:
Символ
Описание
?
0 или 1
*
0 или больше
+
1 или больше
{
Задаем число повторений «с» … «по», используем в паре с }
Примеры:
Шаблон
Описание
/a+/
Подстроки, состоящие только из букв а.
/%[0-9А-Яа-я]{1,3}/
Подстроки от 2 до 4 символов, которые начинаются с % и далее содержат цифры или русские буквы. 1 в фигурных скобках задает минимальное число повторов, 3 - максимальное.
/%[0-9А-Яа-я]{2,}/
Подстроки более 3 символов, которые начинаются с % и далее содержат цифры или русские буквы. 2 в фигурных скобках задает минимальное число повторов.
/%[0-9А-Яа-я]{,2}/
Подстроки длиной до 3 символов включительно, которые начинаются с % и далее содержат цифры или русские буквы. 2 в фигурных скобках задает максимальное число повторов.
/\d{3}/
Подстроки длиной 3 символа только из цифр.
/\d{3}-\d{2}-d{2}/
Семизначный телефонный номер (разряды разделяются -).
/A*_Z/
Подстроки, начинающиеся с А после которого может быть произвольное число _ и заканчивающиеся Z.
/ABC.*/
Подстроки, начинающиеся с АBC.
Внимание! Применение повторов связано со следующим нюансом. По умолчанию алгоритм сравнения ищет подстроку с максимальным возможным числом повторов. Например, алгоритм сравнения для шаблона /ABC.*Z/ в строке ___ABC___Z__ AB_Z найдет только подстроку ABC___Z__ AB_Z, а не две подстроки ABC___Z и AB_Z, как можно было бы подумать. Для того, чтобы искать строку с минимальным числом повторов, нужно после символа повтора указать ?. Таким образом, для шаблона /ABC.*?Z/ будут распознаны две подстроки.