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

Регулярные выражения (сокращенно — РВ), которые используются в поиске и при сегментировании — полностью поддерживаются Java. Если вам нужна более точная информация, обратитесь по адресу http://java.sun.com/j2se/1.5/docs/api/java/util/regex/Pattern.html. Ниже приведены несколько примеров и ссылок.

### Флаги

### Символы

### Кавычки

### Классы блоков и категорий Unicode

### Классы символов

### Предустановленные классы символов

### Границы

### «Жадные» кванторы

### «Ленивые» («нежадные») кванторы

### Логические операторы

### Инструменты для работы с регулярными выражениями и примеры использования

### Выражение...

### соответствует следующему:

### Флаги

`(?i)` | Включает поиск совпадений независимо от регистра символов (по умолчанию все шаблоны чувствительны к регистру)

### Символы

`x` | Символ x, кроме следующего...
`\uhhhh` | Символ с шестнадцатеричным значением `0x` hhhh
`\t` | Символ табуляции (`'\u0009'`)
`\n` | Символ новой строки (прогон строки) (`'\u000A'`)
`\r` | Символ возврата каретки (`'\u000D'`)
`\f` | Символ прогона страницы (`'\u000C'`)
`\a` | Символ звонка (оповещения) (`'\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 как отдельная группа

## Инструменты для работы с регулярными выражениями и примеры использования

Существует несколько программ для разработки и тестирования регулярных выражений. В общем и целом они работают по одному и тому же принципу (смотри ниже, на примере модуля для Firefox): регулярное выражение (в верхнем поле) анализирует поисковый запрос (в поле посредине), выделяя найденное в поле с результатом (в нижнем поле).
Программа The Regex Coach для Windows, Linux, Mac и FreeBSD, работает по принципу, очень похожему на описанный в примере выше.
Большое количество примеров регулярных выражений можно найти и в самой OmegaT (смотри Настройки > Сегментирование). В списке ниже приведены регулярные выражение, могущие оказаться полезными в поиске по памяти перевода:

Регулярное выражение | Результат поиска:
(\b\w+\b)\s\1\b | двойные слова
[\.,]\s*[\.,]+ | где спутаны точки и запятые
\. \s$ | лишние пробелы после точки в конце строки
\s+a\s+[aeiou] | В английском языке: слова, начинающиеся с гласных, перед которыми нужно ставить «an», а не «a»
\s+an\s+[^aeiou] | В английском языке: проверка подобная предыдущей, но на слова, начинающиеся на согласные («a», а не «an»)
\s\s+ | больше, чем один пробел подряд
\.[A-Z] | отсутствует пробел между точкой и началом предложения

Авторские права | Наверх | Предметный указатель