Что ж, я искал в Интернете последние 10 часов безуспешно и безуспешно.
Я пытаюсь преобразовать коды управления irc (цвета и т. Д.) В html, вводимый текст, извлеченный из связанного события eggdrop tcl. Полужирный шрифт / подчеркивание работает нормально ... курсив еще не тестировался, но проблема не в этом.
.. Проблема в том, что мое регулярное выражение, похоже, соответствует неправильному символу (символам). Я настроил свое регулярное выражение - я предполагал, что у меня есть знания из предыдущего опыта кодирования (в основном, php / js) - для сопоставления с \003(\d+)[,]?(\d*)(.*?)
, поскольку я хочу, чтобы числа после управляющего символа затем использовались в качестве индекса в списке , чтобы получить требуемый шестнадцатеричный цвет html. Однако полученное число не похоже даже на число, оно не отображается правильно в терминале, а вместо этого кажется управляющим символом (по моему опыту использования gedit).
Код моего процесса приведен ниже, он является частью более крупного сценария, который записывает текст в файл. Все остальное работает, но это процесс.
На вопрос .. Что именно я здесь сделал не так? Единственное сообщение об ошибке, которое я получаю, похоже на «недопустимый индекс (управляющий символ)».
proc logger:control {text} {
set val {
{FFF}
{000}
{00007F}
{009000}
{FF0000}
{7F0000}
{9F009F}
{FF7F00}
{FFFF00}
{00F800}
{00908F}
{00FFFF}
{0000FF}
{FF00FF}
{7F7F7F}
{CFD0CF}
}
while {[regsub {\002(.*?)\002} $text {<b>\1</b>} text]} {}
while {[regsub {\037(.*?)\037} $text {<u>\1</u>} text]} {}
while {[regsub {\035(.*?)\035} $text {<i>\1</i>} text]} {}
while {[regsub {\003([0-9]+)[,]?(\d*)(.*?)} $text "</span><span style='color: [lindex $val \1] ;'>\3" text]} {}
# ^ the line that throws the error
while {[regsub {\003[^\d]} $text {$text</span>} text]} {}
return $text
}
\1
, что вызывает ошибку. Может быть, вы могли бы присвоить первой переменной catch переменную (скажем, catch), а затем вызвать ее в другом regsublindex $val $catch
? - person Jerry   schedule 16.02.2013\1
. - person Donal Fellows   schedule 16.02.2013-all
дляregsub
… - person Donal Fellows   schedule 16.02.2013