如何使用 regsub 在模式 tcl 之后获取值?
How to use regsub to grab values after a pattern tcl?
如果我有一个具有如下值的变量:
set var "/abc/def/ghi/jkl/mno/pqr"
如何使用 regsub 删除除倒数第二个值之外的所有内容 "mno"?
为什么是正则表达式?
怎么样:
set val [file tail [file dirname $var]]
参考文献:file
% regexp {.*/([^/]+)/} $var -> val
1
% set val
mno
试试这个,使用 split
和 lindex
% set var "/abc/def/ghi/jkl/mno/pqr"
/abc/def/ghi/jkl/mno/pqr
%
% puts "[lindex [split $var "/"] end-1]"
mno
嗯,你可以这样做:
set updatedValue [regsub {^.*(mno).*$} $value {}]
这是 Unix 实用程序 sed 的一个老把戏,已翻译成 Tcl。这将删除除最后一个匹配 mno
的文本以外的所有内容。适当地选择你的 RE。
请不要用它来操纵文件名。它可能有效,但会使您的代码更加混乱。 file
命令具有用于此类工作的实用子命令,它们处理您可能不知道的棘手问题。
如果我有一个具有如下值的变量:
set var "/abc/def/ghi/jkl/mno/pqr"
如何使用 regsub 删除除倒数第二个值之外的所有内容 "mno"?
为什么是正则表达式? 怎么样:
set val [file tail [file dirname $var]]
参考文献:file
% regexp {.*/([^/]+)/} $var -> val
1
% set val
mno
试试这个,使用 split
和 lindex
% set var "/abc/def/ghi/jkl/mno/pqr"
/abc/def/ghi/jkl/mno/pqr
%
% puts "[lindex [split $var "/"] end-1]"
mno
嗯,你可以这样做:
set updatedValue [regsub {^.*(mno).*$} $value {}]
这是 Unix 实用程序 sed 的一个老把戏,已翻译成 Tcl。这将删除除最后一个匹配 mno
的文本以外的所有内容。适当地选择你的 RE。
请不要用它来操纵文件名。它可能有效,但会使您的代码更加混乱。 file
命令具有用于此类工作的实用子命令,它们处理您可能不知道的棘手问题。