OmegaT 4.2 — Дапаможнік карыстальніка

Appendix D. Рэгулярныя выразы

Рэгулярныя выразы (або, часам, рэгвыры), якія ўжываюцца ў пошуках і правілах сэгмэнтаваньня, гэта выразы, якія падтрымліваюцца Java. Калі патрабуюцца больш спэцыфічныя зьвесткі, зьвяртайцеся да “Java Regex documentation”. Дадатковыя спасылкі і прыклады гл. ніжэй.

Note

Гэты разьдзел — для дасьведчаных карыстальнікаў, якім патрабуецца вызначаць уласныя варыянты правілаў сэгмэнтаваньня або ўжываць у пошуках складаныя выразы.

Table D.1. Рэгулярны выраз — сьцягі.
Канструктыўны элемэнт … адпавядае наступнаму
(?i) Ня ўлічваць рэгістар пры падборы адпаведнікаў (па змаўчаньні шаблён улічвае рэгістар).

Table D.2. Рэгулярны выраз — сымбаль
Канструктыўны элемэнт … адпавядае наступнаму
x Сымбаль x, за выключэньнем наступнага…
\uhhhh Сымбаль з шаснаццатковым значэньнем 0xhhhh
\t Сымбаль табуляцыі ('\u0009')
\n Сымбаль новага радка ('\u000A')
\r Сымбаль вяртаньня карэткі ('\u000D')
\f Сымбаль падачы блянка ('\u000C')
\a Сымбаль “званок” ('\u0007')
\e Сымбаль кіроўнай пасьлядоўнасьці ('\u001B')
\cx Кіроўны сымбаль, адпаведны x
\0n Сымбаль з васьмічным значэньнем 0n (0 <= n <= 7)
\0nn Сымбаль з васьмічным значэньнем 0nn (0 <= n <= 7)
\0mnn Сымбаль з васьмічным значэньнем 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh Сымбаль з шаснаццатковым значэньнем 0xhh

Table D.3. Рэгулярны выраз — цытаваньне
Канструктыўны элемэнт … адпавядае наступнаму
\ Нічога, проста азначае наступны сымбаль. Гэта патрабуецца, каб увесьці літаральна адзін з мэта-сымбаляў !$()*+.<>?[\]^{|}.
\\ Напрыклад, гэта — сымбаль зваротнай косай рысы.
\Q Нічога, проста азначае ўсе сымбалі да \E.
\E Нічога, проста азначае канец цытаваньня, пачатага з \Q.

Table D.4. Рэгулярны выраз — Клясы для блёкаў і катэгорыя Unicode
Канструктыўны элемэнт … адпавядае наступнаму
\p{InGreek} Сымбаль з грэцкага блёку (просты блёк)
\p{Lu} Сымбаль у верхнім рэгістры (простая катэгорыя)
\p{Sc} Сымбаль валюты
\P{InGreek} Які заўгодна сымбаль ня з грэцкага блёку (адмаўленьне)
[\p{L}&&[^\p{Lu}]] Якая заўгодна літара ня ў верхнім рэгістры (адыманьне)

Table D.5. Рэгулярны выраз — Клясы сымбаляў
Канструктыўны элемэнт … адпавядае наступнаму
[abc] a, b або c (просты кляс)
[^abc] Які заўгодна сымбаль апроч a, b або c (адмаўленьне)
[a-zA-Z] Ад a да z або ад A да Z уключна (дыяпазон)

Table D.6. Рэгулярны выраз — Вызначаныя клясы сымбаляў
Канструктыўны элемэнт … адпавядае наступнаму
. Які заўгодна сымбаль (апроч канцоў радкоў)
\d Лічба: [0-9]
\D Ня лічба: [^0-9]
\s Прабельны сымбаль: [ \t\n\x0B\f\r]
\S Непрабельны сымбаль: [^\s]
\w Сымбаль у слове: [a-zA-Z_0-9]
\W Сымбаль ня ў слове: [^\w]

Table D.7. Рэгулярны выраз — Вызначальнікі межаў
Канструктыўны элемэнт … адпавядае наступнаму
^ Пачатак радка
$ Канец радка
\b Мяжа слова
\B Мяжа няслова

Table D.8. Рэгулярны выраз — Прагныя квантары
Канструктыўны элемэнт … адпавядае наступнаму
X ? X, адзін раз або ніколі
X * X, нуль або некалькі разоў
X + X, адзін або некалькі разоў

Note

прагныя квантары адпавядаюць як мага большай пасьлядоўнасьці. Напрыклад, для a+ будзе адпаведнікам aaa у aaabbb

Table D.9. Рэгулярны выраз — Няпрагныя квантары
Канструктыўны элемэнт … адпавядае наступнаму
X?? X, адзін раз або ніколі
X*? X, нуль або некалькі разоў
X+? X, адзін або некалькі разоў

Note

няпрагныя квантары адпавядаюць як мага меншай пасьлядоўнасьці. Напрыклад, для a+? будзе адпаведнікам першае a у пасьлядоўнасьці aaabbb

Table D.10. Рэгулярны выраз — Лягічныя апэратары
Канструктыўны элемэнт … адпавядае наступнаму
XY X з Y за ім
X|Y Або X, або Y
(XY) XY як адзіная група

Рэгулярныя выразы і прыклады ўжываньня

Для тэставаньня рэгулярных выразаў можна скарыстацца з шэрагу інтэрактыўных інструмэнтаў. Яны звычайна працуюць аднолькавым чынам (для прыкладу ўзяты Regular Expression Tester, гл. ніжэй): з рэгулярным выразам (верхні элемэнт) аналізуецца шуканы тэкст (тэкставае поле ў сярэдзіне), знаходзяцца нейкія адпаведнікі, вынікі паказваюцца ў полі выніковага тэксту.

Figure D.1. Сродак тэставаньня рэгулярных выразаў
Сродак тэставаньня рэгулярных выразаў

Вэрсіі аўтаномнага інструмэнта для Windows, Linux, FreeBSD: гл. The Regex Coach. Гэта амаль тое самае, што і ў прыкладзе вышэй.

Добры збор карысных прыкладаў рэгулярных выразаў можна ўзяць з самой OmegaT (гл. Налады → Сэгмэнтаваньне). Наступны сьпіс уключае выразы, карысныя для пошукаў у памяці перакладаў:

Table D.11. Regex — Прыклады рэгулярных выразаў у перакладах
Рэгулярны выраз Знойдзецца наступнае:
(\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” і да г. п.