r [:space:] — пробельный символ;
r [:blank:] — пробельный символ или символы с кодом 0 и 255;
r [:cnrtl:] — управляющий символ;
r [:graph:] — символ псевдографики;
r [:lower:] — символ нижнего регистра;
r [:upper:] — символ верхнего регистра;
r [:print:] — печатаемый символ;
r [:punct:] — знак пунктуации;
r [:xdigit:] — цифра или буква от A до Z.
Как видим, все эти выражения задаются в одном и том же виде — [:что_то:]. Хочу еще раз обратить ваше внимание на то, что они могут встречаться только внутри квадратных скобок. Например, допустимы такие регулярные выражения:
abc[[:alnum:]]+ // abc, затем îäíà èëè áîëåå áóêâà èëè öèôðà
abc[[:alpha:][:punct]0] // abc, далее буква, знак пунктуации или 0
но совершенно недопустимы следующее:
abc[:alnum:]+ // íå ðàáîòàåò!
Еще одно привлекательное свойство выражений [:что_то:]
заключается в том, что они автоматически учитывают настройки локали, а значит, правильно работают с "русскими" буквами (конечно, если перед этим была вызвана функция setlocale()
с верными параметрами). Таким образом, выражение [[:alpha:]]+ удовлетворяет любому слову как на английском, так и на русском языке. Добиться этого при помощи "обычного" использования [...]
было бы очень тяжело.