Додаток D. Регулярні вирази
Для пошуку чи налаштування правил сегментації в OmegaT використовуються регулярні вирази Java. Щоб дізнатися про них більше, дивіться документацію регулярних виразів Java. Нижче перелічені приклади використання та корисні посилання.
Примітка
Цей розділ призначений для досвідчених користувачів OmegaT, яким треба налашувати свої особливі варіанти правил сегментації чи шукати в тексті складні конструкції.
Таблиця D.1. Регулярні вирази — прапорці
Вираз |
... спіймає |
(?i) |
Вмикає пошук без врахування регістру літер (типово шаблон враховує регістр). |
Таблиця D.2. Регулярні вирази — символи
Вираз |
... спіймає |
x |
Символ x, за винятком... |
\uhhhh |
Символ із шістнадцятковим значенням 0xhhhh |
\t |
Символ табуляції «\u0009» |
\n |
Символ нового рядка «\u000A» |
\r |
Символ повернення каретки «\u000D» |
\f |
Символ зміни сторінки «\u000C» |
\a |
Символ звукового сигналу «\u0007» |
\e |
Символ Esc «\u001B» |
\cx |
Контрольний символ, що відповідає x |
\0n |
Символ із вісімковим значенням 0n (0 <= n <= 7) |
\0nn |
Символ із вісімковим значенням 0nn (0 <= n <= 7) |
\0mnn |
Символ із вісімковим значенням 0mnn (0 <= m <= 3, 0 <= n <= 7) |
\xhh |
Символ із шістнадцятковим значенням 0xhh |
Таблиця D.3. Регулярні вирази — екранування
Вираз |
... спіймає |
\ |
Нічого не спіймає, але екранує наступний символ. Це потрібно, якщо вам треба ввести якийсь метасимвол — !$()*+.<>?[\]^{|} — уникаючи його інтерпретації як спеціального. |
\\ |
Наприклад, цей вираз зловить символ \. |
\Q |
Нічого не спіймає, але екранує всі символи до \E |
\E |
Нічого не спіймає, але закінчує блок екранованих символів, що розпочався із \Q |
Таблиця D.4. Регулярні вирази — Класи символів для блоків та категорій Юнікоду
Вираз |
... спіймає |
\p{InGreek} |
Символ із грецького блоку (простий блок) |
\p{Lu} |
Велику літеру (проста категорія) |
\p{Sc} |
Символ валюти |
\P{InGreek} |
Будь-який символ, окрім як із грецького блоку (заперечення) |
[\p{L}&&[^\p{Lu}]] |
Будь-яку літеру, окрім великих (виключення) |
Таблиця D.5. Регулярні вирази — класи символів
Вираз |
... спіймає |
[abc] |
a, b, або c (простий клас) |
[^abc] |
Будь-який символ, окрім a, b, чи c (заперечення) |
[a-zA-Z] |
Від a до z чи від A до Z, включно (діапазон) |
Таблиця D.6. Регулярні вирази — попередньо визначені класи символів
Вираз |
... спіймає |
. |
Будь-який символ, окрім символів кінця рядка. |
\d |
Цифру: [0-9] |
\D |
Не цифру: [^0-9] |
\s |
Пробільний символ: [ \t\n\x0B\f\r] |
\S |
Непробільний символ: [^\s] |
\w |
Символ, який «може бути частиною слова»: [a-zA-Z_0-9] |
\W |
Символ, який «не може бути частиною слова»: [^\w] |
Таблиця D.7. Регулярні вирази — межі
Вираз |
... спіймає |
^ |
Початок рядка |
$ |
Кінець рядка |
\b |
Межу «слова» |
\B |
Не межу «слова» |
Таблиця D.8. Регулярні вирази — жадібні квантифікатори
Вираз |
... спіймає |
X
?
|
X, один раз або жодного |
X
*
|
X, нуль чи більше разів |
X
+
|
X, один чи більше разів |
Примітка
жадібні квантифікатори ловлять максимальну можливу кількість елементів. Наприклад,
a+
зловить aaa у
aaabbb
Таблиця D.9. Регулярні вирази — ліниві (нежадібні) квантифікатори
Вираз |
... спіймає |
X?? |
X, один раз або жодного |
X*? |
X, нуль чи більше разів |
X+? |
X, один чи більше разів |
Примітка
ліниві квантифікатори ловлять мінімальну можливу кількість елементів. Наприклад,
a+?
зловить першу літеру
a
у
aaabbb
Таблиця D.10. Регулярні вирази — логічні оператори
Вираз |
... спіймає |
XY |
X за яким іде Y |
X|Y |
X чи Y |
(XY) |
XY як одну групу |