我正在将 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+)