【发布时间】:2013-12-05 03:28:27
【问题描述】:
我知道如何使用 re 根据多个分隔符拆分字符串,如以下问题:Split Strings with Multiple Delimiters?。但我想知道如何使用分隔符列表中给出的顺序拆分字符串,其中每个拆分只会发生一次。
multiple_sep_split("hello^goo^dbye:cat@dog", ['^',':','@'])
>>> ['hello', 'goo^dbye', 'cat', 'dog'] #(note the extra carat)
multiple_sep_split("my_cat:my_dog:my:bird_my_python",[':',':','_'])
>>> ['my_cat','my_dog','my:bird','my_python']
一种方法可能是不匹配分隔符,而是匹配分隔符之间的文本并将它们作为组返回,但还有其他方法吗?
text_re = re.compile('(.+)^(.+):(.+)@(.+)') # get each group from here
【问题讨论】:
-
您是否要求比您提供的正则表达式更好的方法?有什么问题吗?
-
不清楚您要的是什么。用斜体字“按顺序”实际上并没有解释这对你意味着什么;-) 如果你指定了集合 (list? ) 您想到的分隔符 - 我们只能猜测。
-
我马上更新!得去吃午饭了……!
-
@TimPeters 感谢您努力理解这个问题!我已经更新了它,希望它更有意义:)。