是否可以在字符串 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方法分配两个吗?


森栏
浏览 72回答 2
2回答

呼唤远方

使用正则表达式 --> re.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' 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']

SMILET

您可以先将所有的替换'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')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python