## Составление регулярных выражений

Мы используем в поиске и в правилах сегментирования те регулярные выражения, которые поддерживаются Java. Если вам нужна более точная информация, обратитесь по адресу http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html.

В сети можно найти простые инструктажи по регулярным выражениям (http://www.regular-expressions.info/quickstart.html, например).

### Выражение... | ### соответствует следующему:
### Флаги
`(?i)` | Включает поиск совпадений независимо от регистра символов (по умолчанию все шаблоны чувствительны к регистру)
### Символы
`x` | Символ x, кроме следующего...
`\uhhhh` | Символ с шестнадцатеричным значением `0x` hhhh
`\t` | Символ табуляции (`'\u0009'`)
`\n` | Символ новой строки (line feed) (`'\u000A'`)
`\r` | Символ возврата каретки (`'\u000D'`)
`\f` | Символ form-feed (`'\u000C'`)
`\a` | Символ alert (bell) (`'\u0007'`)
`\e` | Символ escape (`'\u001B'`)
`\c` x | Управляющий символ, соответствующий x
`\0` n | Символ с восьмеричным значением `0` n (0 `<=` n `<=` 7)
`\0` nn | Символ с восьмеричным значением `0` nn (0 `<=` n `<=` 7)
`\0` mnn | Символ с восьмеричным значением `0` mnn (0 `<=` m `<=` 3, 0 `<=` n `<=` 7)
`\x` hh | Символ с шестнадцатеричным значением `0x` hh
### Кавычки
`\` | Только закавычивает следующий символ. Это нужно, если вы хотите ввести метасимволы `!$()*+.<>?[\]^{|}` в качестве их буквальных значений.
`\\` | Например, это будет символ обратного слэша.
`\Q` | Только закавычивает все символы до `\E`
`\E` | Только прекращает закавычивание, начатое `\Q`
### Классы блоков и категорий Unicode
``\p{InGreek}`` | Символ в греческом блоке (простой блок)
``\p{Lu}`` | Большая буква (простая категория)
``\p{Sc}`` | Денежный символ
``\P{InGreek}`` | Любой символ кроме одного в греческом блоке (отрицание)
``[\p{L}&&[^\p{Lu}]]`` | Любая буква кроме больших (вычитание)
### Классы символов
`[abc]` | `a`, `b` или `c` (простой класс)
`[^abc]` | Любой символ, кроме `a`, `b` или `c` (отрицание)
`[a-zA-Z]` | От `a` до `z` или от `A` до `Z` включительно (диапазон)
### Предустановленные классы символов
`.` | Любой символ (кроме символов конца строки)
`\d` | Цифра: `[0-9]`
`\D` | Не цифра: `[^0-9]`
`\s` | Символ пробела: `[ \t\n\x0B\f\r]`
`\S` | Не символ пробела: `[^\s]`
`\w` | Символ слова: `[a-zA-Z_0-9]`
`\W` | Не символ слова: `[^\w]`
### Границы
`^` | Начало строки
`$` | Конец строки
`\b` | Граница слова
`\B` | Не граница слова
### "Жадные" кванторы
Они будут искать как можно больше совпадений. Например, `a+` выдаст на выходе `aaa` из последовательности `aaabbb`.
X`?` | X, один раз или ни разу
X`*` | X, ноль или больше раз
X`+` | X, один или больше раз
### "Ленивые" ("нежадные") кванторы
Они будут искать как можно меньше совпадений. Например, `a+?` выдаст на выходе первую `a` из последовательности `aaabbb`.
X`??` | X, один раз или ни разу
X`*?` | X, ноль или больше раз
X`+?` | X, один или больше раз
### Логические операторы
XY | X, за которым идёт Y
X`|`Y | Или X или Y
`(`XY`)` | XY как отдельная группа

Надлежащие уведомления | Наверх | Карта документации