Python中带有多个分隔符的拆分字符串

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]')


梵蒂冈之花
浏览 1389回答 3
3回答

侃侃无极

幸运的是,Python有这个内置的:)import re re.split('; |, ',str)最新情况:以下是你的评论:>>> a='Beautiful, is; better*than\nugly'>>> import re>>> re.split('; |, |\*|\n',a)['Beautiful', 'is', 'better', 'than', 'ugly']

慕的地10843

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

智慧大石

对于任何可迭代的分隔符,以下是使用正则表达式的安全方法:>>> 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.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python