TCL - 使用正则表达式获取另一个字符串中由空格分隔的字符串列表

发布于 2024-10-19 00:25:57 字数 173 浏览 1 评论 0原文

如何在 TCL 中编写匹配单词和空格的正则表达式。例如我有

aaaa    bbbb    cccc       

并且我想匹配“aaaaa”,“bbbb”,“cccc”。 另外请告诉我空白和非空白的正则表达式符号是什么。我到处都找不到它。

谢谢。

How to write a regexp in TCL that matches word and whitespaces. For example I have

aaaa    bbbb    cccc       

and I want to match "aaaaa ", "bbbb ", "cccc ".
And also please tell me what is the regex symbol for whitespace and non-whitespace. I can't find it anywhere.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

日裸衫吸 2024-10-26 00:25:57

我的想法是只搜索单词字符的分组:

set text {aaaa bbbb cccc}
regexp -all -inline {\S+} $text
> aaaa bbbb cccc

您可以在 re_syntax 手册页

My thought would be to just search for groupings of word characters:

set text {aaaa bbbb cccc}
regexp -all -inline {\S+} $text
> aaaa bbbb cccc

You can find the writeup for the Tcl regular expression syntax on the re_syntax man page

瑾兮 2024-10-26 00:25:57

我不太确定您想要什么,但这里有一个示例:

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+ (“单词”字符)和 \W+ (“非单词”字符)。 RE 中的括号包围捕获组; Tcl 不需要 RE 来匹配整个输入字符串。

I'm not quite sure exactly what you want, but here's an example:

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\""

Which produces this output:

The first is "aaaa", second "bbbb", and third "cccc"

Within the RE, \S+ means a non-empty sequence of non-whitespace characters and \s+ means a non-empty sequence of whitespace. I could have used \w+ (“word” chars) and \W+ (“non-word” chars) respectively. The parentheses in the RE surround capture groups; Tcl does not require REs to match the whole input string.

染年凉城似染瑾 2024-10-26 00:25:57

空格的正则表达式符号是“”。就像 [az .] 给你一个空格,以及句点和小写字母。

Regex symbol for whitespace is " ". Like [a-z .] gives you a whitespace, as well as period and lowercase letters.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文