Spec-Zone .ru
спецификации, руководства, описания, API
|
Pattern
API содержит много полезных предопределенных классов символов, которые предлагают удобные сокращения для обычно используемых регулярных выражений:
Создать | Описание |
---|---|
. |
Любой символ (может или, возможно, не соответствует разделители строки), |
\d |
Цифра: [0-9] |
\D |
Нецифра: [^0-9] |
\s |
Пробельный символ: [ \t\n\x0B\f\r] |
\S |
Непробельный символ: [^\s] |
\w |
Символ слова: [a-zA-Z_0-9] |
\W |
Символ неслова: [^\w] |
В таблице выше, каждая конструкция в левом столбце является сокращением для символьного class в правом столбце. Например, \d
означает диапазон цифр (0-9), и \w
означает символ слова (любая строчная буква, любая прописная буква, символ подчеркивания, или любая цифра). Используйте предопределенные классы когда бы ни было возможно. Они делают Ваш код легче считать и устранить ошибки, представленные уродливыми классами символов.
Конструкции, начинающиеся с наклонной черты влево, вызывают, вышел из конструкций. Мы предварительно просматривали оставленные конструкции в разделе \Q
и \E
для цитаты. Если Вы используете оставленную конструкцию в пределах строкового литерала, Вы должны preceed наклонная черта влево с другой наклонной чертой влево для строки, чтобы скомпилировать. Например:
private final String REGEX = "\\d"; // a single digit
В этом примере \d
регулярное выражение; дополнительная наклонная черта влево требуется для кода скомпилировать. Тестовый ремень безопасности читает выражения непосредственно из Console
, однако, таким образом, дополнительная наклонная черта влево является ненужной.
Следующие примеры демонстрируют использование предопределенных классов символов.
Enter your regex: . Enter input string to search: @ I found the text "@" starting at index 0 and ending at index 1. Enter your regex: . Enter input string to search: 1 I found the text "1" starting at index 0 and ending at index 1. Enter your regex: . Enter input string to search: a I found the text "a" starting at index 0 and ending at index 1. Enter your regex: \d Enter input string to search: 1 I found the text "1" starting at index 0 and ending at index 1. Enter your regex: \d Enter input string to search: a No match found. Enter your regex: \D Enter input string to search: 1 No match found. Enter your regex: \D Enter input string to search: a I found the text "a" starting at index 0 and ending at index 1. Enter your regex: \s Enter input string to search: I found the text " " starting at index 0 and ending at index 1. Enter your regex: \s Enter input string to search: a No match found. Enter your regex: \S Enter input string to search: No match found. Enter your regex: \S Enter input string to search: a I found the text "a" starting at index 0 and ending at index 1. Enter your regex: \w Enter input string to search: a I found the text "a" starting at index 0 and ending at index 1. Enter your regex: \w Enter input string to search: ! No match found. Enter your regex: \W Enter input string to search: a No match found. Enter your regex: \W Enter input string to search: ! I found the text "!" starting at index 0 and ending at index 1.
В первых трех примерах регулярное выражение просто .
("точечный" метасимвол), который указывает "на любой символ." Поэтому, соответствие успешно во всех трех случаях (в произвольном порядке выбранный @
символ, цифра, и буква). Остающиеся примеры каждое использование единственная конструкция регулярного выражения от Предопределенной таблицы Классов символов. Можно обратиться к этой таблице, чтобы выяснить логику позади каждого соответствия:
\d
соответствия все цифры\s
пробелы соответствий\w
символы слова соответствийАльтернативно, прописная буква означает противоположность:
\D
нецифры соответствий\S
непробелы соответствий\W
символы неслова соответствий