1

Тема: AHK: возможность использования RegExReplace без «Найти и заменить»

Уважаемые форумчане, я работаю в программе SDL Trados Sudio 2014 и одновременно использую макросы и автозамены, написанные в Autohotkey.

Программа SDL Trados Sudio 2014 представляет собой своего рода таблицу из двух колонок. В левой колонке «мертвый» текст на английском, который нельзя изменить, в правой колонке машинный перевод для последующего редактирования. Каждое предложение машинного перевода находится в сегменте (его еще называют строкой). Все обычные вердовские функции, например, выделить весь текст (Сtrl+A) работают только для одного сегмента.

Несколько моих макросов вызываю окно «Найти и заменить» и производят необходимые замены, в том числе с использованием регулярных выражений. В окне «Найти и заменить» есть опция использовать регулярные выражения.

Мой вопрос касается того, можно ли производить замены БЕЗ ИСПОЛЬЗОВАНИЯ окна «Найти и заменить». Если это возможно, то, пожалуйста, переделайте следующий скрипт

^!vk59:: ; Сtrl+Alt+y  форматирование веб ссылки
 OldClipboard = %Clipboard%
 Clipboard := ""
 SendInput, ^c ;cuts selected text
 ClipWait 0
 If ErrorLevel
   {
     MsgBox, No Text Selected!
     Return
   }
 Clipboard := RegExReplace(Clipboard
    ,"(/Text/)([\w\s]+)(\.[^>]+>)\d+","$1$2$3$2")
 SendInput, ^v
 Clipboard = %OldClipboard%
Return

таким образом, чтобы скрипт находил знак доллара «$» и цифру после него и заменял бы это сочетание на цифру, пробел и фразу «долларов США» (то есть вот это выражение «\$(\d+)» нужно заменить на «$1 долларов США»)

На всякий случай привожу описание того (нашел только на английском языке), что делает вышеуказанный скрипт, который, я надеюсь, может служить основой для необходимого мне скрипта.
1.      The old contents of the of the Windows Clipboard is saved (OldClipboard = %Clipboard%).
2.     The Clipboard is emptied (Clipboard := “”).
3.     The highlighted text is copied to the Clipboard (SendInput, ^c).
4.     The routine pauses/waits until the Clipboard is no longer empty (ClipWait 0).
5.     The ErrorLevel statement, which works with the ClipWait command, is included just in case the user forgets to select (highlight) any text prior to executing the Hotkey combination.
6.     The subject Regular Expression is used in the RegExReplace() function t0 reformat the contents of the Clipboard (explanation to follow).
7.     The new Clipboard contents replace the selected text in the document (SendInput, ^v).
8.     The original contents of the Clipboard is restored (Clipboard=%OldClipboard%).

2

Re: AHK: возможность использования RegExReplace без «Найти и заменить»

Э-э-э...

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: Maxim, 2016-02-03 08:41:14)

Re: AHK: возможность использования RegExReplace без «Найти и заменить»

Уважаемый teadrinker, по сути, мой вопрос не имеет прямой связи с этим выражением «\$(\d+)» нужно заменить на «$1 долларов США».

Вместо него может быть выражение найти (\)[^\.]*?)([A-ZА-ЯЁ]) и заменить на "$1$L2" или другое выражение. Я не знаю способна ли программа Autohotkey делать глобальные замены во всем тексте в особой программе, и поэтому попросил создать скрипт, чтобы протестировать его в программе SDL Trados Sudio.

Я прекрасно понимаю, что без представления о SDL Trados Sudio трудно ответить на мой вопрос, поэтому только для совсем беглого просмотра того как выглядит программа включаю эту ссылку на видео на youtube http://www.youtube.com/watch?v=6YinMHjI5jw.

Расставил точки и оформил ссылку.