Her*_*ery 7 python string split
我有一个像这样的输入字符串:a1b2c30d40
我想将字符串标记为:a, 1, b, 2, c, 30, d, 40
.
我知道我可以逐个读取每个字符并跟踪前一个字符以确定我是否应该对它进行标记(连续两位数表示不对其进行标记)但是有更多的pythonic方法吗?
Cat*_*lus 13
>>> re.split(r'(\d+)', 'a1b2c30d40')
['a', '1', 'b', '2', 'c', '30', 'd', '40', '']
Run Code Online (Sandbox Code Playgroud)
在模式上:正如评论所说,\d
意思是"匹配一个数字",+
是一个修饰符,意思是"匹配一个或多个",所以\d+
意味着"匹配尽可能多的数字".这被放入一个组中()
,因此上下文中的整个模式re.split
意味着"使用尽可能多的数字作为分隔符来分割此字符串,另外将匹配的分隔符捕获到结果中".如果你省略了这个小组,你就会得到['a', 'b', 'c', 'd', '']
.
归档时间: |
|
查看次数: |
995 次 |
最近记录: |