如何在TCL中编写与单词和空格匹配的正则表达式。例如,我有
aaaa bbbb cccc
我希望匹配“aaaaa”,“bbbb”,“cccc”。 还请告诉我什么是空格和非空格的正则表达符号。我无法在任何地方找到它。
感谢。
答案 0 :(得分:4)
我的想法是只搜索单词字符组:
set text {aaaa bbbb cccc}
regexp -all -inline {\S+} $text
> aaaa bbbb cccc
上找到Tcl正则表达式语法的写法
答案 1 :(得分:2)
我不是完全确切地知道你想要什么,但这是一个例子:
set str "aaaa bbbb cccc "
regexp {(\S+)\s+(\S+)\s+(\S+)} $str -> wordA wordB wordC
puts "The first is \"$wordA\", second \"$wordB\", and third \"$wordC\""
产生此输出:
第一个是“aaaa”,第二个是“bbbb”,第三个是“cccc”
在RE中,\S+
表示非空白字符的非空序列,\s+
表示非空的空白序列。我本可以分别使用\w+
(“word”字符)和\W+
(“非字”字符)。 RE环绕捕获组中的括号; Tcl不要求RE匹配整个输入字符串。
答案 2 :(得分:-1)
空格的正则表达式符号是“”。就像[a-z。]给你一个空格,以及句号和小写字母。