Чему соответствует строка регулярного выражения «\p{Cntrl}» в Java?

#java #regex

#java #регулярное выражение

Вопрос:

Я думаю, что она соответствует всем управляющим символам (не уверен, что такое «все»), но я не могу быть уверен, и я не могу найти это в какой-либо документации, кроме некоторых размышлений на форуме Perl. Кто-нибудь знает?

Ответ №1:

Из документации Pattern :

p{Cntrl} Управляющий символ: [x00-x1Fx7F]

То есть, она соответствует любому символу с шестнадцатеричным значением от 00 до 1F или 7F.

В статье в Википедии о управляющих символах перечислены каждый символ и для чего он используется, если вам интересно.

Ответ №2:

p{name} соответствует классу символов Unicode; обратитесь к соответствующей спецификации Unicode, чтобы узнать, какие кодовые точки есть в классе. Здесь обсуждается специфика механизма регулярных выражений Java ( Cntrl являющегося одним из примеров Any ASCII control character in the range 0-127. This effectively means characters 0-31 and 127. ), хотя то же самое относится ко многим другим механизмам регулярных выражений.