是否可以在字符串split()方法中放置两个分隔符?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以在字符串split()方法中放置两个分隔符?相关的知识,希望对你有一定的参考价值。
抱歉缺少更好的标题。
希望下面的说明有所帮助。给定以下字符串:
f=' Sleep stage W\\x14\\x00+26070\\x1590\\x14 Sleep stage W\\x14\\x00+26070\\x1590\\x14 Movement time\\x14\\x00+28110\\x15120\\x14 Sleep stage 3\\x14\\x00+28230\\x1530\\x14'
并且将如下拆分
' W\\x14\\x00+26070\\x1590\\x14 '
' W\\x14\\x00+26070\\x1590\\x14 '
' \\x14\\x00+28110\\x15120\\x14 '
' 3\\x14\\x00+28230\\x1530\\x14'
为了实现这一点,起草了以下代码
f=' Sleep stage W\\x14\\x00+26070\\x1590\\x14 Sleep stage W\\x14\\x00+26070\\x1590\\x14 Movement time\\x14\\x00+28110\\x15120\\x14 Sleep stage 3\\x14\\x00+28230\\x1530\\x14'
raw_hypno = [x for x in f.split('Sleep stage')][1:]
产生以下输出
' W\\x14\\x00+26070\\x1590\\x14 '
' W\\x14\\x00+26070\\x1590\\x14 Movement time\\x14\\x00+28110\\x15120\\x14 '
' 3\\x14\\x00+28230\\x1530\\x14'
可以看出,细节Movement time
没有正确分割。
我是否可以使用split condition
方法分配两个split
?
答案
使用正则表达式-> re.split
。 Ex:
f=' Sleep stage W\\x14\\x00+26070\\x1590\\x14 Sleep stage W\\x14\\x00+26070\\x1590\\x14 Movement time\\x14\\x00+28110\\x15120\\x14 Sleep stage 3\\x14\\x00+28230\\x1530\\x14'
print(re.split(r"Sleep stage|Movement time", f))
输出:
[' ', ' W\\x14\\x00+26070\\x1590\\x14 ', ' W\\x14\\x00+26070\\x1590\\x14 ', '\\x14\\x00+28110\\x15120\\x14 ', ' 3\\x14\\x00+28230\\x1530\\x14']
另一答案
您可以先将所有'Movement time'
替换为'Sleep stage'
, 然后简单地按'Sleep stage'
分割:
f=' Sleep stage W\\x14\\x00+26070\\x1590\\x14 Sleep stage W\\x14\\x00+26070\\x1590\\x14 Movement time\\x14\\x00+28110\\x15120\\x14 Sleep stage 3\\x14\\x00+28230\\x1530\\x14'.replace('Movement time','Sleep stage').split('Sleep stage')
以上是关于是否可以在字符串split()方法中放置两个分隔符?的主要内容,如果未能解决你的问题,请参考以下文章