试着匹配的以下正则表达式是什么?

use*_*316 2 regex tcl

我看到了这样的一个:

regexp "hello\[^\\n]*06" $str
Run Code Online (Sandbox Code Playgroud)

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

sle*_*man 5

在tcl中,按双引号("")分组的字符串在计算时会进行替换.如您所知,tcl理解以下替换:

  • 变量substututions:任何以$符号开头的单词都将替换其值.
  • 命令substutution:在[和之间的任何一组单词]被视为一个语句,第一个单词被称为命令(function).
  • 转义替换:任何反斜杠(\)都被视为转义序列并相应地替换.

因此,以下代码:

regexp "hello\[^\\n]*06" $str
Run Code Online (Sandbox Code Playgroud)

相当于:

regexp {hello[^\n]*06} $str
Run Code Online (Sandbox Code Playgroud)

所以它试图匹配包含单词"hello"和"06"的字符串,它们之间没有任何换行符.