在TCL语言中难以理解正则表达式



我是TCL语言的新手。我很难在myFile.txt中捕获数据。

我的文件.txt

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

我想在大括号内捕捉单词,如下所示。

Hello, Bye, Nice, Yoh

如何在 TCL 中使用正则表达式来做到这一点。

首先要尝试的是这个简单的事情:

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

关键点:

  1. {}是Tcl的RE语言变体中的元字符,因此需要对其进行转义。
  2. 我们想要提取的位("非空字字符序列",所以w+(需要被捕获并与后面的捕获变量匹配:->只是我们想要忽略的捕获的虚拟变量。
  3. 始终将 TCL 中的 RE 放在大括号内,除非您确切知道自己在做什么。(当你知道自己在做什么时,你就会知道几乎总是把它们放在大括号里。这使我们能够在没有反斜杠炎症的情况下编写 RE。

最新更新