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

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

Флаги

Символы

Кавычки

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

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

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

Границы

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

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

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

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

    

 


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

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


Флаги

(?i)

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


Символы

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


Кавычки

\

Только закавычивает следующий символ. Это нужно, если вы хотите ввести метасимволы !$()*+.<>?[\]^{|} в качестве их буквальных значений.

\\

Например, это будет символ обратной косой черты.

\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): регулярное выражение (в верхнем поле)  анализирует поисковый запрос (в поле посредине), выделяя найденное в поле с результатом (в нижнем поле).

модуль тестирования регулярных выражений для 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] отсутствует пробел между точкой и началом предложения



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