TCL - установка значения переменной из регулярного выражения - PullRequest
0 голосов
/ 12 февраля 2020

Анализ большого количества текста с использованием регулярных выражений TCL и попытка присвоить соответствие переменной. Я понимаю, что совпадение хранится в совпадении, но я ограничен включением операторов в 'set found'.

Это не работает:

set text "asdf asdf bob foobar 123456@bar dksl: dpee" # simulating blob of text

set found [set blob $text]; regexp -nocase {\d{6}(?:@bar)} $blob match; return $found;

puts $found

Любая помощь в том, как go об этом?

1 Ответ

0 голосов
/ 12 февраля 2020

У вашего скрипта есть несколько проблем, но регулярное выражение в основном нормально. Следующее будет работать, как и ожидалось:

regexp -nocase {(\d{6})(?:@bar)} $text _ found

(помните о скобках группировки!)

Проблемы с вашим сценарием:

  • Не использовать return (в этом нет необходимости, потому что вы не возвращаетесь с proc). Как следствие, строка puts $found заканчивается как мертвый код.
  • Почему все пух с переназначением blob et c.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...