python字符串拆分

标签 python string split

我有一个这样的输入字符串:a1b2c30d40,我想将该字符串标记为:a, 1, b, 2, c, 30, d, 40 .

我知道我可以一个一个地读取每个字符并跟踪前一个字符以确定我是否应该对其进行标记化(连续 2 位数字意味着不对其进行标记化)但是是否有更 pythonic 的方式做这个?

最佳答案

>>> re.split(r'(\d+)', 'a1b2c30d40')
['a', '1', 'b', '2', 'c', '30', 'd', '40', '']

关于模式:如注释所说,\d表示“匹配一个数字”,+是一个修饰符,表示“匹配一个或多个”,所以\d+ 表示“匹配尽可能多的数字”。这被放入组 () 中,因此 re.split 上下文中的整个模式意味着“使用尽可能多的数字作为分隔符拆分此字符串,另外捕获将分隔符匹配到结果中”。如果您省略组,您将得到 ['a', 'b', 'c', 'd', '']

关于python字符串拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4843841/

相关文章:

Python - 我的频率函数效率低下

python 密码检查器 : numbers and symbols

c# - 是否有用于获取字符串列表中最长字符串的 LINQ 函数?

javascript - 在一行中处理文件夹路径并处理尾部斜杠?

python - tensorflow.load 与下载 URL

python - Kivy - 在其他屏幕中创建的访问实例

python - 如何在 python 2.7 中将字符串转换为字节串

arrays - Excel 将单个数组拆分为多个单元格

r - 如何在 R 中拆分 'CHR' 列?

Java 字符串拆分给出意想不到的结果