1 (изменено: freeZer0K, 2016-09-28 21:35:32)

Тема: AHK: RegExReplace шаблон замены \\ на \

Добрый вечер!
Нигде не могу найти инфу и ничего не получается - мозг плавится!
Короче, кроме прочих, имеется такая сторока:

"InstallDir"="C:\\Program Files\\AutoHotkey"

Сделал шабон:

RegKey := RegExReplace(RegKey, """(.*)""=""(.*)""", "$1, $2")

который преобразовывает строку в такую:

InstallDir, C:\\Program Files\\AutoHotkey

а надо получить такую (с одним backslash):

InstallDir, C:\Program Files\AutoHotkey

Это удалось сделать только за два прохода таким образом:

RegKey := RegExReplace(RegKey, """(.*)""=""(.*)""", "$1, $2")
RegKey := StrReplace(RegKey, "\\", "\", "All")
MsgBox % RegKey

Хотелось бы сделать все за один проход RegExReplace при условии, что другие строки, не содержащие \\ будут изменены по первому шаблону ...

Пожалуйта ...

2

Re: AHK: RegExReplace шаблон замены \\ на \

freeZer0K, оформите код соответствующим тегом.

3

Re: AHK: RegExReplace шаблон замены \\ на \

ypppu, исправил.

4 (изменено: Flasher, 2016-09-29 14:12:39)

Re: AHK: RegExReplace шаблон замены \\ на \

freeZer0K пишет:

кроме прочих, имеется такая сторока:

В эти "кроме прочих" всё и упрётся, ибо одними подвыражениями сыт не будешь:

Text = "InstallDir"="C:\\Program Files\\AutoHotkey"
MsgBox % RegExReplace(Text, """(\w+)""=""(\w:)\\\\([ \w]+)\\\\([ \w]+)""", "$1, $2\$3\$4")

Поэтому без многопроходности тут по нормальному никак:

Text = "InstallDir"="C:\\Program Files\\AutoHotkey"
for k, v in {"\\":"\", """":"", "=":", "}
    Text := StrReplace(Text, k, v, "All")
MsgBox % Text

Более короткий вариант:

Text = "InstallDir"="C:\\Program Files\\AutoHotkey"
MsgBox % StrReplace(RegExReplace(Text, "(""|\\(?=\\))"), "=", ", ")

5 (изменено: freeZer0K, 2016-09-28 23:21:09)

Re: AHK: RegExReplace шаблон замены \\ на \

Flasher, благодарю за ответ!

Собственно, я хотел написать конвертер файлов реестра в *.ahk
Ничего не нашел, кроме этого:

http://www.sordum.org/8478/reg-converter-v1-0

Но он только для bat, vbs и au3.

Есть еще старый код, не помню, где нашел. Но он только из "живого" реестра берет и по-одной ветке - муторно и долго.
Может где-то что-то есть еще? Чтобы именно файлы реестра переводил.
Надоело "партянки" переделывать в *.ahk

6 (изменено: Flasher, 2016-09-28 23:52:08)

Re: AHK: RegExReplace шаблон замены \\ на \

freeZer0K
В таком случае создайте соответствующий задаче топик и приведите имеющийся код. Можно позаимствовать отсюда.
А также точки расставляйте в конце всех предложений.

7

Re: AHK: RegExReplace шаблон замены \\ на \

Есть готовое решение, вечером выложу если не забуду.

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

8

Re: AHK: RegExReplace шаблон замены \\ на \

Alectric
В новом топике - пожалуйста.