簡體   English   中英

如何在特定字符后分割字符串?

[英]how to split a string after a specific character?

我想用特定符號拆分項目列表。

我使用了以下代碼

data = "launch,  7:30am,  watch tv,  workout,  snap,  running,  research study and learn"
items = data.split(',')
print(', '.join([items[0], items[-1].split('—')[1]]))

我想要的是拆分數據並像這樣打印:

發射,學習和學習

但是,當數據按以下方式更改時出現問題:

data = "launch, 7:30am, watch tv, workout, snap, running, research — discussion, study and learn"
items = data.split(',')
print(', '.join([items[0], items[-1].split('—')[1]]))

在這種情況下,我期望得到以下結果:

發起,討論,學習

因此,出現錯誤“列表索引超出范圍”! 這是正確的,因為最后一個元素后沒有符號“-”,因為是“,”,並且我指示將數據拆分為“,”因此在“討論,學習和學習”中將其視為單獨的數據,因此會出現錯誤。 我不想重寫任何代碼,是否可以使用代碼重用來讀取兩個數據。 是否可以在“-”符號后面讀取?

似乎您的預期輸出取決於單詞research

我們可以使用正則表達式來實現相同的功能,它將搜索research詞並在其后給您提供字符。

你可以試試這個-

# -*- coding: utf-8 -*-
import re
(re.split(r'*research[^A-Za-z0-9]+',data))[-1]
#study and learn
#discussion, study and learn

完整代碼:

# -*- coding: utf-8 -*-
import re
print ("{0}, {1}".format(data.split(',')[0], (re.split(r' *research[^A-Za-z0-9]+',data))[-1]))
#launch, study and learn
#launch, discussion, study and learn

閱讀有關python Regex的更多信息:

https://docs.python.org/3/library/re.html

或關於此處的表達式:

https://www.w3schools.com/python/python_regex.asp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM