我想将一个字符串拆分为一个列表(Python),其中每个段要么是全数字的,要么是全非数字的
实例
'100.200.300'
给出了{}'abc0foo!bar'
给出{}'123'
给出了{}'foo'
给出了{}
输入可能以数字部分或非数字部分开始或结束。当在""
上加入时,结果必须完整地再现原始输入
如果我在例如\d+
上拆分,那么我将保留非数字部分,并丢失数字部分。我可以在^(\d+|\D+)(.*)$
上循环,但那很烦人
我可以(在单个表达式中)在边界上拆分并在结果列表中保留所有字符串部分和非字符串部分吗
Tags:
您可以结合使用正向前瞻和;在正则表达式中查找以确定可以拆分给定字符串的边界(分隔符)。使用:
给定字符串的结果
matches
将为解释:
正向查找
(?<=\D)
\D
匹配任何非数字字符李>正向前瞻
(?=\d)
\d
匹配一个数字(等于[0-9])正向查找
(?<=\d)
\d
匹配一个数字(等于[0-9])正向前瞻
(?=\D)
\D
匹配任何非数字字符李>您可以测试正则表达式^{}
相关问题 更多 >
编程相关推荐