set vv "abc 123 456 "
regexp {abc[\s][\d]+[\s][\d]+} $vv
1
regexp {abc[\s][\d]+[\s][\d]+(?! )} $vv
1
应返回0,因为该行的末尾包含额外的空格或额外的字符。
从行列表中,我试图知道哪些行的末尾有空格,哪些没有。
行可以是任何格式,例如,我需要提取第1行和第3行,但不能提取第2行和第4行。
答案 0 :(得分:1)
正则表达式为{^abc.*\d$}
-一个数字,后跟字符串的结尾。
% regex {^abc.*\d$} $vv
0
全局模式为{abc*[0-9]}
% string match {abc*[0-9]} $vv
0
% string match {abc*[0-9] } $vv
1
答案 1 :(得分:1)
您可以使用重复的模式来匹配空格和数字,以确保该行仅以数字结尾:
^abc(?: \d+)+$
或者如果行可以是任何格式,则使用单词\w
进行更广泛的匹配:
^\w+(?: \w+)+$
答案 2 :(得分:0)
不确定TCL正则表达式,但我认为您必须添加一个锚点:
abc\s\d+\s\d+$
答案 3 :(得分:0)
可以概括为以单词(\ w)开头的行($)的结尾。
puts [regexp {\w$} $vv]
答案 4 :(得分:0)
如果您需要查找行是否以空格结尾,则将其用于正则表达式:
\s$