我想使用re来分割基于多个可变长度分隔符的字符串。你知道吗
我试过:
s = 'PPPPMMMMMPPPPPFFFMFFFFAA--AAA'
re.split('(P*)|(A*)|(-*)', s)
得到:
['', 'PPPP', None, 'MMMMM', 'PPPPP', None, 'FFFMFFFFAA--AAA']
但是,我想对所有组进行完全拆分,如下所示:
['', 'PPPP', None, 'MMMMM', 'PPPPP', None, 'FFFMFFFF', 'AA', '--', 'AAA']
我不介意None
条目。我希望对所有字符块进行完全拆分,包括P*
、A*
和-*
。用re
这可能吗?你知道吗
如果使用给定的正则表达式运行程序,则会得到:
因此,这意味着您的正则表达式应始终至少包含一个字符:空字符串不应与正则表达式匹配。你知道吗
在
(P+|A+|-+)
上拆分如何:如果不需要空字符串
''
,可以使用列表理解过滤掉它们:这也会删除
None
项。但是,如果需要None
部分(这些是未执行的分支的捕获组),可以使用(P+)|(A+)|(-+)
:相关问题 更多 >
编程相关推荐