亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python中帶有多個分隔符的拆分字符串

Python中帶有多個分隔符的拆分字符串

梵蒂岡之花 2019-06-21 17:08:09
Python中帶有多個分隔符的拆分字符串我在網上找到了一些答案,但我對正則表達式沒有經驗,我認為這是這里所需要的。我有一個字符串,需要用‘;’或‘來分隔,也就是說,它必須是分號或逗號,后面跟著空格。沒有尾隨空格的個別逗號應保持不變。示例字符串:"b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3], mesitylene [000108-67-8]; polymerized 1,2-dihydro-2,2,4- trimethyl  quinoline [026780-96-1]"應拆分為包含以下內容的列表:('b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3]' , 'mesitylene [000108-67-8]', 'polymerized 1,2-dihydro-2,2,4- trime thyl quinoline [026780-96-1]')
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

幸運的是,Python有這個內置的:)

import re
re.split('; |, ',str)

最新情況:
以下是你的評論:

>>> a='Beautiful, is; better*than\nugly'>>> import re>>> re.split('; |, |\*|\n',a)['Beautiful', 'is', 'better', 'than', 'ugly']


查看完整回答
反對 回復 2019-06-21
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

str.replace('; ', ', ')然后str.split(', ')


查看完整回答
反對 回復 2019-06-21
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

對于任何可迭代的分隔符,以下是使用正則表達式的安全方法:

>>> import re>>> delimiters = "a", "...", "(c)">>> example = "stackoverflow (c) is awesome... isn't it?"
>>> regexPattern = '|'.join(map(re.escape, delimiters))>>> regexPattern'a|\\.\\.\\.|\\(c\\)'
>>> re.split(regexPattern, example)['st', 'ckoverflow ', ' is ', 'wesome', " isn't it?"]

重逃允許自動構建模式,并將分隔符很好地轉義。

下面是一個用于復制粘貼樂趣的解決方案:

def split(delimiters, string, maxsplit=0):
    import re
    regexPattern = '|'.join(map(re.escape, delimiters))
    return re.split(regexPattern, string, maxsplit)

如果要經常使用相同的分隔符進行拆分,請像前面所描述的那樣編譯正則表達式并使用RegexObject.split.


查看完整回答
反對 回復 2019-06-21
  • 3 回答
  • 0 關注
  • 1373 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號