Проблема преобразования блока строки в буфер обмена, если в реболе есть символ ^ - PullRequest
0 голосов
/ 20 июня 2010

Допустим, у меня есть этот блок:

Yuml-Output-List: [    {note: Wordpress Profiles{bg:beige}
[Blogger]^[User]
[Admin]^[Blogger]
[Author]^[Blogger]
[Subscriber]^[User]
}

{note: Blogger Role{bg:beige}
[Blogger]-(Manage Posts)
}

{note: Admin Roles{bg:beige}
[Admin]-(Manage Site)
(Manage Site)>(Manage Users)
(Manage Site)>(Manage Themes)
(Manage Site)>(Manage Plugins)
}

]

Если я хочу скопировать результат в буфер обмена с этим:

clipboard: copy ""
foreach element Yuml-Output-List [
append clipboard element
append clipboard newline
append clipboard newline
]
write clipboard:// clipboard

Я получу ESC символ INSTEAD из ^:

note: Wordpress Profiles{bg:beige}
[Blogger]ESCUser]
[Admin]ESCBlogger]
[Author]ESCBlogger]
[Subscriber]ESCUser]


note: Blogger Role{bg:beige}
[Blogger]-(Manage Posts)


note: Admin Roles{bg:beige}
[Admin]-(Manage Site)
(Manage Site)>(Manage Users)
(Manage Site)>(Manage Themes)
(Manage Site)>(Manage Plugins)

Итак, как избавиться от выхода escape?

1 Ответ

1 голос
/ 21 июня 2010

Поскольку это строка REBOL, символ ^ [представляет символ ESC, поскольку ^ используется для escape-последовательностей.

Итак, вы хотите заменить существующий символ ESC на каретку и левую скобку, например:

replace/all source "^[" "^^["

Обратите внимание на ^^, так как вам нужно экранировать ^, и теперь левая скобка больше не экранируется.

...