string - TCL:如何从字符串中删除所有字母/数字?
问题描述
我正在使用 tcl 编程语言并尝试从字符串中删除所有字母或数字。从这个例子set s abcdefg0123456
中,我知道从字符串(ex )中删除所有字母的一般方法是
set new_s [string trim $s "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXXYZ"]
如果我想从一个字符串中删除所有数字,我可以这样做
set new_s [string trim $s "0123456789"]
有没有更直接的方法来删除所有字母/数字?
我还注意到,如果我想删除一部分数字(例如 012)而不是所有数字,则以下内容不起作用。
set new_s [string trim $s "012"]
有人可以解释为什么吗?
解决方案
使用正则表达式:
set s abcdefg0123456
regsub -all {\d+} $s {} new_s ;# Remove all digits
regsub -all {[[:alpha:]]+} $s {} new_s ;# Remove all letters
推荐阅读
- sql-server-2016 - 操作数类型冲突:nvarchar(max) 与 nvarchar(max) 不兼容
- amazon-web-services - 如果第一个服务器失败,AWS Elastic Load Balancer 是否可以仅用于将流量发送到第二个服务器
- intellij-idea - Intellij Idea - 忽略外部工具的非零退出代码
- azure - 在 Azure 中将两个应用服务映射到一个 DNS
- c# - 为什么我在使用 Azure AD 帐户的 Azure AD B2C 中有两个登录弹出窗口?
- javascript - AJAX - 如何让 readystate == 3 重复触发上传?
- java - Java流过滤列表
- cuda - 网格的最大 x 维度太低
- scala - Scala fold for RDD [String] 行为怪异
- c# - .NET Core 2.0.6 中的 WEB API 比 .NET 4.5.2 慢?