one
为什么循环不继续并像第一个组合元素一样操纵列表?
答案 0 :(得分:4)
您可以使用正则表达式查找括号中的字符组或仅查找单个字符。正则表达式将返回匹配元组 - 匹配正则表达式的每一侧'或'(|
)。对于每个元组,只会填充一个字符串,另一个将是一个空字符串(因此join
)
import re
mystring = 'AC[BC]D[ABD]'
[''.join(x) for x in re.findall(r'\[(\w+)\]|(\w)', mystring)]
# returns:
['A', 'C', 'BC', 'D', 'ABD']
答案 1 :(得分:0)
您可以使用regex
:
import re
mystring = 'AC[BC]D[ABD]'
final_data = re.findall('(?<=\[)\w+(?=\])|\w', mystring)
输出:
['A', 'C', 'BC', 'D', 'ABD']