我的数据格式如下:
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”
开始答案 0 :(得分:1)
我认为您应该使用以下正则表达式re.findall
来获取所需内容:
re.findall('<.*?>|".*?"', string1)
匹配<id1>
,<id2>
和"abc <id3> "
类似地,
re.findall('<.*?>|".*?"', string2)
匹配<id4>
,<id5>
和<id6>
。