我已使用regsub
和string trim
两个命令删除空格和所需字符。
到目前为止,两者都可以用于同样的任务......(差不多以一种或另一种方式与我合作)
使用上述语法时是否有任何重要或值得注意的观点?
对于任何特定的例子,是否有人使用一个而不是其他的任何主要好处。
答案 0 :(得分:2)
虽然regsub
可以执行string trim
所做的事情,但它对regsub
的力量几乎没有很好的利用。另一方面,string trim
是一个简单的命令,可以完成它所做的工作而且就是这样做的。因此string trim
的一个好处是,如果您想要它所做的事情更容易使用,regsub
的一个好处就是它可以做得非常复杂的东西。
因为它更简单,string trim
更快。
% set s " example text "
example text
% puts >>[string trim $s]<<
>>example text<<
% puts >>[regsub {^\s*(\S(?:.*\S)?)\s*$} $s {\1}]<<
>>example text<<
% time {string trim $s} 10000
0.662736 microseconds per iteration
% time {regsub {^\s*(\S(?:.*\S)?)\s*$} $s {\1}} 10000
2.6273805 microseconds per iteration
时间不科学且无效;只是比较相对速度,好吗?并且string trim
比regsub
快4倍(这是模拟string trim
所做的正确的...)
答案 1 :(得分:2)
首先string trim
仅意味着只删除前导和尾随字符。如果假设,该字符位于中间位置或位于前导位置或尾随位置之外,则string trim
将使其保持原状。你也不能在这里使用正则表达式。 regsub
的许多优点。
此外,string trim
会将其删除为字符列表。不是单个整个字符串。