用于检测非空格的 TCL 正则表达式



我正在将 tcl 正则表达式应用于这 2 个数据,我想提取第 2 列数据:

1: Common point:  rt123_345_no/qwe_rty/sdf34x56/CFR
2: Common point: NA

此正则表达式适用于第一个数据,但不适用于第二个数据:

regexp -inline -expanded -- {Commonspoint:s+?(S+)s+} $line

我不明白为什么正则表达式不起作用。请指教。

有两个问题:

  • NA后没有空格,因此,最后s+无论如何都会在这里失败
  • s+?惰性模式设置分支的贪婪度,S+的行为将S+?,仅从NA中捕获一个N+?因为惰性量词使正则表达式引擎匹配尽可能少的字符匹配量化模式。

Commonspoint:s+(S+)

最新更新