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

时间:2017-09-13 06:37:24

标签: regex tcl

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

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

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

regexp -inline -expanded -- {Common\spoint:\s+?(\S+)\s+} $line

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

1 个答案:

答案 0 :(得分:3)

有两个问题:

  • NA之后没有空格,因此,最后\s+将无法通过此处的匹配失败
  • \s+?延迟模式设置分支的贪婪,\S+将表现为\S+?,仅从N中捕获NA +? { {1}}延迟量词使正则表达式引擎匹配尽可能少的匹配量化模式的字符。

使用

Common\spoint:\s+(\S+)
相关问题