选择性地在python中拆分字符串

时间:2015-04-06 22:52:49

标签: python regex split

我的数据格式如下:

string1='<id1> <id2> "abc <id3> ".'
string2='<id_4> <id_5> <id_6>.'

我想将其拆分为:(<id1>,<id2>, "abc <id3> ")(<id_4>, <id_5>, <id_6>)。我尝试了re.split('(?<=)\s+(?=<)',string1),但错误地将string1拆分为(<id1>,<id2>,"abc <id3>")。 (尽管它根据需要正确地拆分了string2)。

如何正确拆分以便拆分&lt;&gt;但是当&lt;&gt;时不会分裂在引号中。

这里的分隔符是&lt;&gt;和“”。如果我们找到&lt;然后我们尝试找到&gt;。如果我们发现“然后我们试图找到”。 对于字符串1(string1 ='“abc”。'):我以&lt;开头..找到id1并找到关闭尖括号,然后我找到&lt;并尝试找到关闭角括号&gt;即id2,然后以“并尝试在点之前找到”,即“abc”

开始

1 个答案:

答案 0 :(得分:1)

我认为您应该使用以下正则表达式re.findall来获取所需内容:

re.findall('<.*?>|".*?"', string1)

匹配<id1><id2>"abc <id3> "

类似地,

re.findall('<.*?>|".*?"', string2)

匹配<id4><id5><id6>