如何使用__
作为分隔符来拆分此字符串
MATCHES__STRING
如何获得输出
['MATCHES', 'STRING']
呢?
如果要特别以空格为分隔符进行拆分,请参阅如何将字符串拆分为单词列表?。
要提取第一个分隔符之前的所有内容,请参阅在第一次出现时分割。
要提取最后一个分隔符之前的所有内容,请参阅在Python中划分字符串并获取冒号后面的最后一个段的值。
如何使用__
作为分隔符来拆分此字符串
MATCHES__STRING
['MATCHES', 'STRING']
呢?
如果要特别以空格为分隔符进行拆分,请参阅如何将字符串拆分为单词列表?。
要提取第一个分隔符之前的所有内容,请参阅在第一次出现时分割。
要提取最后一个分隔符之前的所有内容,请参阅在Python中划分字符串并获取冒号后面的最后一个段的值。
x.strip()
并返回一个没有两侧空格的匹配项列表。关键在于细节。 - Sébastien Vercammen'match'.split('delim')[0]
获取第一个部分等。 - Timo您可能对csv
模块感兴趣,它是为逗号分隔文件设计的,但可以很容易地修改以使用自定义分隔符。
import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]
for row in csv.reader( lines ):
...
split
和 rsplit
,还有partition
/rpartition
。它只将字符串分隔一次,但根据问题的方式提问,也可以适用。>>> "MATCHES__STRING".partition("__")
('MATCHES', '__', 'STRING')
>>> "MATCHES__STRING".partition("__")[::2]
('MATCHES', 'STRING')
比 split("_",1)
快一点:
$ python -m timeit "'validate_field_name'.split('_', 1)[-1]"
2000000 loops, best of 5: 136 nsec per loop
$ python -m timeit "'validate_field_name'.partition('_')[-1]"
2000000 loops, best of 5: 108 nsec per loop
Timeit代码基于这个答案
date, time, event_name = ev.get_text(separator='@').split("@")
这行代码执行后,三个变量将分别获得变量 ev
中三个部分的值。
因此,如果变量 ev
包含以下字符串并应用分隔符 @
:
Sa., 23. März@19:00@Klavier + Orchester: SPEZIAL
然后,在split
操作之后,变量
date
将具有值Sa., 23. März
time
将具有值19:00
event_name
将具有值Klavier + Orchester: SPEZIAL
get_text
方法,您可以直接使用ev.split("@")
。事实上,get_text
方法会抛出一个属性错误。因此,如果您有一个字符串变量,例如:filename = 'file/foo/bar/fox'
W, X, Y, Z = filename.split('_')
W = 'file'
X = 'foo'
Y = 'bar'
Z = 'fox'