Предопределенные Классы символов (Учебные руководства Java™> Существенные Классы> Регулярные выражения)


След: Существенные Классы
Урок: Регулярные выражения
Предопределенные Классы символов
Домашняя страница > Существенные Классы > Регулярные выражения

Предопределенные Классы символов

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.

В первых трех примерах регулярное выражение просто . ("точечный" метасимвол), который указывает "на любой символ." Поэтому, соответствие успешно во всех трех случаях (в произвольном порядке выбранный @ символ, цифра, и буква). Остающиеся примеры каждое использование единственная конструкция регулярного выражения от Предопределенной таблицы Классов символов. Можно обратиться к этой таблице, чтобы выяснить логику позади каждого соответствия:

Альтернативно, прописная буква означает противоположность:


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Классы символов
Следующая страница: Кванторы



Spec-Zone.ru - all specs in one place