首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在特定字符后返回字符串

在特定字符后返回字符串
EN

Stack Overflow用户
提问于 2018-06-02 00:10:35
回答 2查看 291关注 0票数 0

我有一个关于在TCL中获取特定字符后的字符串的可能性的问题。

我的意思是:

输入:

abcdefgh = hgfedcba

输出:

hgfedcba

(返回"=“后的所有内容,不能包含空格)

这就是我所使用的:

regexp {abcdefgh=\s+"(.*)"} $text_var all variable

在某些情况下,它可以(有空格),但是当没有空格时,它就不能工作了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-02 09:50:30

% regexp {abcdefgh\s*=\s*(\S+)} "abcdefgh = hgfedcba" all variable
1
% set variable
hgfedcba
% regexp {abcdefgh\s*=\s*(\S+)} "abcdefgh=hgfedcba" all variable
1
% set variable
hgfedcba
%
票数 0
EN

Stack Overflow用户

发布于 2018-06-02 12:27:30

假设

% set s {abcdefgh = hgfedcba}
# => abcdefgh = hgfedcba

(或者在没有一个或两个空格的情况下做同样的事情)你可以这样做:

% scan $s {%*[^=]= %s}
# => hgfedcba

(扫描字符串以查找不包含"=“的子字符串,然后越过等号和可选的空格,然后返回字符串的其余部分。)

string trim [lindex [split $s =] 1]

(在等号处拆分字符串,返回(空格修剪的)第二个结果元素。)

string trim [string range $s [string first = $s]+1 end]

(返回从等号开始的(空格修剪的)子字符串。)

string trim [lindex [regexp -inline {[^=]+$} $s] 0]

(返回锚定在字符串末尾的一个或多个字符的(空格修剪)第一个匹配,不包括等号。)

lindex [regexp -inline -all {[a-h]+} $s] 1

(返回集合"a“到”h“中连续字符的第二个匹配。)

string trimleft [string trimleft $s {abcdefgh }] {= }

(从字符串的开头删除集合"a“到"h”和空白中的所有字符,然后从结果字符串的开头删除等于符号或空白的所有字符。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50647387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档