На этом шаге рассмотрим классы символов, поддерживаемые пакетом regexp, для работы со строками в Go.
В табл. 1 даны классы символов, поддерживаемые механизмом RE2.
Последовательность | Описание |
---|---|
[символы] | Любой из перечисленных символов |
[^символы] | Любой из неперечисленных символов |
[:имя:] | Любой из ASCII-символов, входящий в класс с указанным именем:
[[:alnum:]] ≡ [0-9A-Za-z] [[:lower:]] ≡ [a-z] [[:alpha:]] ≡ [A-Za-z] [[:print:]] ≡ [ -~] [[:ascii:]] ≡ [\x00-\x7F] [[:punct:]] ≡ [!-/:-@[-`{-~] [[:blank:]] .≡ [ \t] [[:space:]] ≡ [ \t\n\v\f\r] [[:cntrl:]] ≡ [\x00-\x1F\x7F] [[:upper:]] ≡ [A-Z] [[:digit:]] ≡ [0-9] [[:word:]] ≡ [0-9A-Za-z] [[:graph:]] ≡ [!-~] [[:xdigit:]] ≡ [0-9A-Fa-z] |
[:^имя:] | Любой из ASCII-символов, не входящий в класс с указанным именем |
. | Любой символ (включая перевод строки, если установлен флаг s) |
\d | Любая ASCII-цифра: [0-9] |
\D | Любой ASCII-символ, не являющийся цифрой: [^0-9] |
\s | Любой пробельный ASCII-символ: [\t\n\f\r] |
\S | Любой ASCII-символ, не являющийся пробельным: [^\t\n\f\r] |
\w | Любой ASCII-символ "слова": [0-9A-Za-z] |
\W | Любой ASCII-символ, не являющийся символом "слова": [^0-9A-Za-z] |
\pN | Любой символ Юникода, входящий в класс N с однобуквенным именем, например последовательности \pL соответствуют буквы Юникода |
\PN | Любой символ Юникода, не входящий в класс N с однобуквенным именем, например последовательности \PL соответствуют символы Юникода, не являющиеся буквами |
\p{Имя} | Любой символ Юникода, входящий в класс с именем Имя, например последовательности \p{Ll} соответствуют буквы нижнего регистра, последовательности \p{Lu} – буквы верхнего регистра, последовательности \p{Greek} – буквы греческого алфавита |
\P{Имя} | Любой символ Юникода, не входящий в класс с именем Имя |
На следующем шаге рассмотрим проверки и квантификаторы, поддерживаемые пакетом regexp.