【发布时间】:2017-06-21 18:03:47
【问题描述】:
我有一个类似
的字符串'A15B7C2'
表示字符的个数。
我现在正在使用 re 将其拆分为字符和数字。之后最终将其存储在字典中
import re
data_str = 'A15B7C2'
re.split("(\d+)", data_str)
# prints --> ['A', '15', 'B', '7', 'C', '2', '']
但是如果我有一个像
这样的字符串'A15B7CD2Ef5'
这意味着 C 的计数是 1(它的隐式),而 Ef 的计数是 5。(大写和随后的小写作为一个键)因此我得到 p>
'CD' = 2(不正确)
'Ef' = 5(正确)
如何修改它以提供正确的计数? 解析和获取计数并存储在字典中的最佳方法是什么?
【问题讨论】:
-
因此,您不能再使用一位或多位数字进行拆分。你尝试过什么来解决这个问题?你的字符串是字母数字的吗?
-
@Wiktor : 尝试过..
r"[^\W\d_]+|\d+"r"(\d+|\s+)""([A-Za-z])([0-9]*)"和其他一些人,但只是无法正确使用正则表达式。看着答案,结果发现多一点注意力会有所帮助;)即使那样,我也无法将整件事写下来!行:)
标签: python regex string split numbers