При поиске и создании правил сегментации используются регулярные выражения, поддерживаемые платформой 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» и т. д. |