Трудно понять Regexp в TCL Language - PullRequest
0 голосов
/ 17 февраля 2020

Я новичок в языке TCL. У меня возникают трудности с перехватом данных в myFile.txt.

MyFile.txt

set obj "{Hello}"
set obj "{Bye}"
set obj "{Nice}"
set obj "{Yoh}"

Я хочу поймать слова внутри фигурной скобки, как показано ниже.

Hello, Bye, Nice, Yoh

Как это сделать с помощью регулярного выражения в TCL.

1 Ответ

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

Первое, что нужно попробовать, это простая вещь:

regexp {\{(\w+)\}} $obj -> word

Ключевые моменты:

  1. { и } являются метасимволами в варианте языка Tcl RE. , поэтому их нужно экранировать.
  2. Бит, который мы хотим извлечь («непустая последовательность символов слова», поэтому \w+), должен быть захвачен и сопоставлен с переменной захвата, которая следует после: -> - это просто фиктивная переменная для захвата, которую мы хотим игнорировать.
  3. Всегда помещайте RE в Tcl внутри фигурных скобок, если вы точно не знаете, что делаете. (Когда вы знаете, что делаете, вы в любом случае будете знать, что они всегда в скобках.) Это позволяет нам писать RE без воспаления обратной косой черты.
...