regex - 下面的正则表达式试图匹配什么?

标签 regex tcl

我看到了这样的回复:

regexp "hello\[^\\n]*06" $str

尝试匹配的\[^\\n]*是什么?

最佳答案

在 tcl 中,由双引号 ("") 分组的字符串在求值时会进行替换。如您所知,tcl 理解以下替换:

  • 变量替换:任何以 $ 符号开头的单词都会替换其值。
  • 命令替换:[] 之间的任何一组单词都被视为一条语句,第一个单词被称为命令(函数)。
  • 转义替换:任何反斜杠 (\) 都会被视为转义序列并进行相应替换。

因此,有以下代码:

regexp "hello\[^\\n]*06" $str

相当于:

regexp {hello[^\n]*06} $str

因此它尝试匹配包含单词“hello”和“06”的字符串,并且它们之间没有任何换行符。

关于regex - 下面的正则表达式试图匹配什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17019855/

相关文章:

regex - Powershell 正则表达式检查括号之间的字符串

java - 正则表达式:Java 包的完整路径

javascript - 如何使正则表达式不区分大小写?

tcl - 如何从 tcl/tk 生成应用程序,使其独立于父应用程序?

c++ - 通过 C++ 控制台提供 TCL 脚本控制窗口

python - 寻找一个 GUI 应用程序来输入 linux 命令

python脚本来分割csv数据

python-3.x - 如何使用 `re.findall`从字符串中提取数据

python - tkinter:是否可以使用 native Tcl/Tk tklib 的 ctext 小部件?

ruby - Visual TCL,如何安装和使用?