我正在使用 tcl 编程语言并尝试从字符串中删除所有字母或数字。从这个例子中,我知道从字符串(例如set s abcdefg0123456)中删除所有字母的一般方法是
set new_s [string trim $s "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXXYZ"]
Run Code Online (Sandbox Code Playgroud)
如果我想从字符串中删除所有数字,我可以这样做
set new_s [string trim $s "0123456789"]
Run Code Online (Sandbox Code Playgroud)
有没有更直接的方法来删除所有字母/数字?
我还注意到,如果我想删除一部分数字(例如 012)而不是所有数字,则以下操作不起作用。
set new_s [string trim $s "012"]
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么吗?
使用正则表达式:
set s abcdefg0123456
regsub -all {\d+} $s {} new_s ;# Remove all digits
regsub -all {[[:alpha:]]+} $s {} new_s ;# Remove all letters
Run Code Online (Sandbox Code Playgroud)