2013-06-03 4 views
0

При просмотре некоторых элементов регулярного выражения я обнаружил, что вы можете помещать буквенные символы внутри класса символов. Я знаю, что при использовании классов символов вы можете использовать диапазоны для ярлыка вместо указания каждой буквы/числа в диапазоне, IE: [1-47-9] соответствует каждому числу, кроме 0,5,6.Литеральные символы в классах символов регулярных выражений

Если у вас есть регулярное выражение, включая буквенные символы в символьном классе, обрабатывается ли оно одинаково и соответствует диапазону этих символов? Например, [\000-\005] положительно соответствует \000, \001, \002, \003, \004, \005?

ответ

1

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

+0

@ f-j so '[\ 009- \ 000]' недопустим в том же смысле '[9-0]' недействителен? Спасибо за помощь. – Walls

+0

Да, обратите внимание, что вы даже можете делать диапазоны с кажущимися несвязанными символами. Например, вы можете создать класс символов для всех печатных символов ASCII с помощью '[- ~]'. –