Tcl中如何从字母数字字符串中提取连续数字并按空格分隔输出
Tcl提取字符串中所有连续数字段的实现方法
直接通过内置的regexp正则匹配命令即可实现,完整可运行代码如下:
# 定义待处理的原始字符串 set raw_str "code_lines_part2021vol32i8mn.txt" # 全局匹配所有连续数字段,返回列表格式的结果 set digit_segments [regexp -all -inline {\d+} $raw_str] # 用空格拼接列表得到目标输出格式 set output [join $digit_segments " "] # 打印结果 puts $output
运行上述代码后,输出内容就是你需要的2021 32 8。
代码参数说明
regexp是Tcl内置的正则表达式处理命令-all参数指定匹配所有符合规则的片段,而非仅匹配第一个匹配项-inline参数指定直接将匹配到的结果作为列表返回,无需额外定义捕获变量{\d+}是匹配规则:\d匹配任意数字字符,+表示匹配连续1个及以上的数字join命令用于将返回的数字列表用指定分隔符(这里是空格)拼接为字符串
内容的提问来源于stack exchange,提问作者sing20
相关产品推荐
相关产品推荐

