我试图匹配一个看起来像这样的文件:
22.000 abc_/dasdf
23.652 abc_1/dasdf_0/l
我使用的正则表达式是:
[regexp { (\S+)\s+(.+) } $line -> number name }
但是,只有在文件中的字符串后面有空格时才会匹配。例如,它在以下情况下返回匹配:
22.000 abc_/dasdf<space>
但在/dasdf
之后没有任何内容时无法匹配。默认情况下,文件中的字符串后面没有这样的空格。这可能是什么原因?
答案 0 :(得分:2)
那是因为你的大括号内有空格。这些都很重要。
使用
regexp {(\S+)\s+(.+)} $line -> number name
# ......^...........^ no spaces here
或者如果你想要空白以便于阅读:
regexp -expanded { (\S+) \s+ (.+) } $line -> number name