Новости Энциклопедия переводчика Блоги Авторский дневник Форум Работа

Декларация Поиск О нас пишут Награды Читальня Конкурсы Опросы








ГП-цитатник

Устранение ошибок после после Mymemory с помощью рег. выраж.

Устранение ошибок после после Mymemory с помощью рег. выраж.

Сообщение rekmax » Ср дек 28, 2016 10:49

Уважаемые форумчане.
Я работаю в SDL Trados Sudio 2017 и регулярно сталкиваюсь с тем, что при использовании плагина MyMemory появляются ошибки, связанные с тем, что MyMemory не всегда заменяет точку на запятую в цифрах при переводе с английского на русский.

Другими словами в правой колонке Студио должно появится «8,44», а появляется «8.44».

Заменить десятичную точку на запятую не проблема с помощью Ctrl+H (с галочкой регулярные выражения) и следующего регулярного выражения найти «(\d+)\.(\d+)» и заменить на «$1,$2».

Но запятые не должны появляться в следующих подобных наборах цифр и точек (2.5.2.) (2.5.4.1.) (2.5.5.1.1.) (2.5.5.1.1.3.). То есть, запятые не должны появляться в цифрах там, где есть 3, 4, 5, 6 цифр с точками после каждой цифры. В документах, которые я перевожу, такая нумерация является частой, и она не должна меняться после использования Ctrl+H.

Пожалуйста, помогите написать регулярное выражение, в котором бы учитывались вышеперечисленные исключения.
rekmax

 
Сообщения: 50
Зарегистрирован: Пт апр 15, 2011 10:50





Re: Устранение ошибок после после Mymemory с помощью рег. вы

Сообщение mikhailo » Ср дек 28, 2016 12:28

А кто вам мешает потом обратно заменить запятые на точки в нумерации, завершающейся на точку?
ИМХО, ваших навыков должно хватить.

Касательно прочего - везде есть свои особенности реализации регулярных выражений и их надо проверять в каждом конкретном случае в конкретной программе.
Any man who is under 30, and is not a liberal, has not heart; and any man who is over 30, and is not a conservative, has no brains. - Sir Winston Churchill
mikhailo

 
Сообщения: 3880
Зарегистрирован: Пн июл 12, 2004 07:22
Язык(-и): EN,DE,IT>RU; СУРДОПЕРЕВОД

Re: Устранение ошибок после после Mymemory с помощью рег. вы

Сообщение rekmax » Ср дек 28, 2016 13:57

Я работаю над созданием программки (скрипта), который будет исправлять ошибки Mymemory в течение следующих 30 лет. Поэтому хочу раздобыть очень хорошие регулярные выражения, которые будут работать четко и прямолинейно (это точно возможно).

Если пользоваться подсказками по регулярным выражениям на этом сайте http://www.exlab.net/tools/sheets/regexp.html, то они работают для SDL Trados Sudio 2017.
rekmax

 
Сообщения: 50
Зарегистрирован: Пт апр 15, 2011 10:50

Re: Устранение ошибок после после Mymemory с помощью рег. вы

Сообщение random_nick » Чт дек 29, 2016 04:03

Код: Выделить всё
(\d+)\.(\d+[^\.])


Не знаю, как в Традосе, но в Питоне можно сделать так:
Код: Выделить всё
#!/usr/bin/python3

import re

text = 'This 8.44 should be replaced and these 2.5.2., 2.5.4.1. and 2.5.5.1.1. should not be replaced'

expr = '(\d+)\.(\d+[^\.])'
match = re.search(expr,text)
while match:
   old = text
   replace_what = match.group(0)
   replace_with = match.group(1) + ',' + match.group(2)
   text = text.replace(replace_what,replace_with)
   match = re.search(expr,text)
   if old == text:
      match=False
      
print(text)
random_nick

 
Сообщения: 518
Зарегистрирован: Ср июн 26, 2013 02:33



Словари русского языка

www.gramota.ru
Словарь Мультитран
Язык

Вернуться в Trados

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2