【发布时间】:2014-09-03 16:22:40
【问题描述】:
我正在尝试使用 python 正则表达式拆分由方括号分隔的单词/短语。我想拆分输出。条件是以方括号开头和结尾的文本部分将被拆分为不同的元素。
这是我目前所拥有的,但它不能正常工作:
import re
t="word1 word2 3456 [abc def] [ghi jkl] [1234] [-abcd] word 2345"
re.split("(\[)(.*)(\])+",t)
输出:
['word1 word2 3456 ',
'[',
'abc def] [ghi jkl] [1234] [-abcd',
']',
' word [xyz 2345']
我希望输出类似于:
['word1 word2 3456 ',
'[abc def]',
' ',
'[ghi jkl]',
' ',
'[1234]',
' ',
'[-abcd]',
' word [xyz 2345']
请注意,只有带有左方括号和右方括号的项目会被拆分。
我也试过这个:
re.split("(\[.*\])+",t)
但仅由第一个和最后一个方括号分开
['word1 word2 3456 ', '[abc def] [ghi jkl] [1234] [-abcd]', ' word [xyz 2345']
【问题讨论】:
-
您可能想要
re.findall或re.finditer,而不是re.split。