При поиске и создании правил сегментации используются регулярные выражения, поддерживаемые платформой Java. Более подробную информацию можно найти в документации Java. Ниже приведены несколько примеров и ссылок.
Этот раздел предназначен для опытных пользователей, которым требуется создавать собственные правила сегментации или использовать сложные и мощные функции поиска.
Таблица 16.1. Регулярные выражения - Модификаторы
Выражение | ... соответствует |
---|---|
(?i) | Включает поиск совпадений независимо от регистра символов (по умолчанию все шаблоны чувствительны к регистру) |
Таблица 16.2. Регулярные выражения - Символы
Выражение | ... соответствует |
---|---|
x | Символ «x», за исключением следующих случаев… |
\uhhhh | Символ с шестнадцатеричным значением 0xhhhh |
\t | Символ табуляции («\u0009») |
\n | Символ новой строки («\u000A») |
\r | Символ возврата каретки («\u000D») |
\f | Символ конца страницы (команда подачи страницы для принтера) («\u000C») |
\a | Символ звонка (оповещения) («\u0007») |
\e | Символ Escape («\u001B») |
\cx | Управляющий символ, соответствующий «x» |
\0n | Символ с восьмеричным значением 0n (0 ≤ n ≤ 7) |
\0nn | Символ с восьмеричным значением 0nn (0 ≤ n ≤ 7) |
\0mnn | Символ с восьмеричным значением 0mnn (0 ≤ m ≤ 3, 0 ≤ n ≤ 7) |
\xhh | Символ с шестнадцатеричным значением 0xhh |
Таблица 16.3. Регулярные выражения - Экранирование
Выражение | ... соответствует |
---|---|
\ | не соответствует ничему, только экранирует следующий за ним символ. Это нужно, если вы хотите ввести метасимволы !$()*+.<>?[\]^{|} в качестве их буквальных значений. |
\\ | Например, это будет обратная косая черта. |
\Q | не соответствует ничему, только экранирует все символы вплоть до \E |
\E | не соответствует ничему, только прекращает экранирование, начатое \Q |
Таблица 16.5. Регулярные выражения - Наборы символов
Выражение | ... соответствует |
---|---|
[abc] | a, b, или c (простой набор) |
[^abc] | Любой символ кроме a, b, или c (исключение) |
[a-zA-Z] | Любые символы латинского алфавита, от a до z и от A до Z включительно |
Таблица 16.6. Регулярные выражения - Предустановленные наборы символов
Выражение | ... соответствует |
---|---|
. | Любой символ (кроме символов конца строки) |
\d | Цифра: [0-9] |
\D | Не цифра: [^0-9] |
\s | Любой пробельный символ: [ \t\n\x0B\f\r] |
\S | Любой не пробельный символ: [^\s] |
\w | Любой буквенный или цифровой символ, а также знак подчёркивания: [a-zA-Z_0-9] |
\W | Любой символ кроме буквенного и цифрового, а также знака подчёркивания: [^\w] |
Таблица 16.7. Регулярные выражения - Границы
Выражение | ... соответствует |
---|---|
^ | Начало строки |
$ | Конец строки |
\b | Граница слова |
\B | Не граница слова |
Таблица 16.8. Регулярные выражения - Жадные кванторы
Выражение | ... соответствует |
---|---|
X? | X, один раз или ни разу |
X* | X, ноль или более раз |
X+ | X, один или более раз |
жадные кванторы будут искать как можно больше совпадений. Например, a+ для последовательности aaabbb выдаст «ааа».
Таблица 16.9. Регулярные выражения - Ленивые кванторы
Выражение | ... соответствует |
---|---|
X?? | X, один раз или ни разу |
X*? | X, ноль или более раз |
X+? | X, один или более раз |
ленивые кванторы будут искать как можно меньше совпадений. Например, a+? для последовательности aaabbb выдаст только a.
Таблица 16.10. Регулярные выражения - Логические операторы
Выражение | ... соответствует |
---|---|
XY | X, за которым идёт Y |
X|Y | Либо X, либо Y |
(XY) | XY как отдельная группа |
Существует несколько программ для разработки и тестирования регулярных выражений. В общем и целом они работают по одному и тому же принципу (пример работы программы Regular Expression Tester смотри ниже): регулярное выражение (в верхнем поле) применяется к некоему тексту (в поле посередине), результаты работы показываются в нижнем поле.
Программа The Regex Coach для Windows, GNU/Linux и FreeBSD. Работает по описанному выше принципу.
Большое количество полезных примеров регулярных выражений можно найти и в самой ОмегаТ (смотри «Параметры» > «Сегментация»). В списке ниже приведены регулярные выражения, которые могут оказаться полезными при поиске по памяти перевода:
Таблица 16.11. Регулярные выражения - Примеры использования регулярных выражений при поиске по переводам
Регулярное выражение | Результат поиска: |
---|---|
(\b\w+\b)\s\1\b | слова, написанные дважды |
[\.,]\s*[\.,]+ | точка или запятая, за которой следуют пробелы, а потом ещё одна точка или запятая |
\. \s+$ | лишние пробелы после точки в конце строки |
\s+a\s+[aeiou] | для английского языка: как правило, перед словами, начинающимися с гласных, нужно ставить «an», а не «a» |
\s+an\s+[^aeiou] | для английского языка: проверка подобная предыдущей, но на слова, начинающиеся с согласных («a», а не «an») |
\s{2,} | больше, чем один пробел подряд |
\.[A-Z] | Точка, за которой следует прописная буква, возможно, перед началом нового предложения пропущен пробел? |
\bis\b | поиск «is», но не «this» или «isn't» и т. д. |