[英]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
或關於此處的表達式:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.