Split 如何获得由特定字符分隔的字符串部分?
例如,我有一个文件(可以是任何一个): 我使用以下代码提取文件名:Split 如何获得由特定字符分隔的字符串部分?,split,tcl,Split,Tcl,例如,我有一个文件(可以是任何一个): 我使用以下代码提取文件名: [file rootname [file tail [value root.name]]] 输出= AX_001_123_890_v01 AX_001_123_890_v01_preview_lores 接下来,我只想提取AX_001_123部分(或左起的前3段)。最简单的方法是什么 >>> n = 3 >>> groups = text.split('_') >>>
[file rootname [file tail [value root.name]]]
输出=
AX_001_123_890_v01
AX_001_123_890_v01_preview_lores
接下来,我只想提取AX_001_123
部分(或左起的前3段)。最简单的方法是什么
>>> n = 3
>>> groups = text.split('_')
>>> '_'.join(groups[:n]), '_'.join(groups[n:])
这将为您提供python中所需的两个组
这将为您提供python中所需的两个组。使用split和/或join有困难吗?文档非常简单:,并且(从列表中获取元素的子列表):
您在使用拆分和/或联接时有困难吗?文档非常简单:,并且(从列表中获取元素的子列表):
您可能还需要考虑使用正则表达式来提取前缀字符串:
% regsub {^(([^_]+_){0}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX
% regsub {^(([^_]+_){1}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001
% regsub {^(([^_]+_){2}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123
% regsub {^(([^_]+_){3}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123_890
% regsub {^(([^_]+_){4}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123_890_v01
- 正则表达式使用量词
,{0}
。。。将子表达式的特定数目与输入字符串相匹配。此数字{1}
等于n
,其中(m-1)
是您要查找的“元素”数m
- 基于正则表达式的方法不需要输入字符串(及其子字符串)作为有效的Tcl列表
- 保存一些命令调用
- 免责声明:我不是一个正则表达式向导,所以上面的表达式可能会得到改进,可能超出我的理解范围
,您可能还需要考虑使用正则表达式来提取前缀字符串:
% regsub {^(([^_]+_){0}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX
% regsub {^(([^_]+_){1}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001
% regsub {^(([^_]+_){2}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123
% regsub {^(([^_]+_){3}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123_890
% regsub {^(([^_]+_){4}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123_890_v01
- 正则表达式使用量词
,{0}
。。。将子表达式的特定数目与输入字符串相匹配。此数字{1}
等于n
,其中(m-1)
是您要查找的“元素”数m
- 基于正则表达式的方法不需要输入字符串(及其子字符串)作为有效的Tcl列表
- 保存一些命令调用
- 免责声明:我不是一个正则表达式向导,所以上面的表达式可能会得到改进,可能超出我的理解范围
% regsub {^(([^_]+_){0}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX
% regsub {^(([^_]+_){1}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001
% regsub {^(([^_]+_){2}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123
% regsub {^(([^_]+_){3}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123_890
% regsub {^(([^_]+_){4}[^_]+).*$} "AX_001_123_890_v01" {\1}
AX_001_123_890_v01