在 Regex 或 Python 中:计数、添加和写入(重复次数 + 字符名称)并继续......并在新的事件中重复该过程
In Regex or Python: Count, add and write (Number of times it repeats + character name) and proceed ... and in a new occurrence repeat the process
给定以下列表或元组:
列表:[UURRUULLLRRDDDBBBUUU]
第一步:计算"U"字符在新的"unknown2 (R or D or B or L?)"字符出现之前重复了多少次并记录(重复次数+相应"U"字符的字母)
Step2:接第1步:计算"unknown2"字符重复了多少次,直到出现"unknown2"以外的新字符。或等于 "U" 字符和记录(重复次数 + 相应 "unknown2" 字符的字母)。
中间步骤:如果 "unknown2" 字符后的新字符等于 "U" 字符,请计算它在新出现的字符中重复了多少次并重复步骤 1。
也就是说,对于元组(列表),我想要的方式组织重复的结果是:
2U2R2U3L2R3D3B3U
类似的东西是 This(但不是在正则表达式中),除了结果不一样,但这对我来说是一个开始。
您可以使用
re.sub(r"(.)*", lambda x: "{}{}".format(len(x.group()), x.group(1)), text)
详情
(.)*
是一种模式,它匹配并捕获一个字符(换行符字符除外,使用 re.DOTALL
也可以匹配换行符),然后匹配 0+ 个与组 1 中相同的字符.
lambda x: "{}{}".format(len(x.group()), x.group(1))
是替换,其中 x
是找到的匹配对象,return 值是整个匹配长度的串联 (len(x.group())
)和第 1 组中的字符 (x.group(1)
).
给定以下列表或元组:
列表:[UURRUULLLRRDDDBBBUUU]
第一步:计算"U"字符在新的"unknown2 (R or D or B or L?)"字符出现之前重复了多少次并记录(重复次数+相应"U"字符的字母)
Step2:接第1步:计算"unknown2"字符重复了多少次,直到出现"unknown2"以外的新字符。或等于 "U" 字符和记录(重复次数 + 相应 "unknown2" 字符的字母)。
中间步骤:如果 "unknown2" 字符后的新字符等于 "U" 字符,请计算它在新出现的字符中重复了多少次并重复步骤 1。
也就是说,对于元组(列表),我想要的方式组织重复的结果是:
2U2R2U3L2R3D3B3U
类似的东西是 This(但不是在正则表达式中),除了结果不一样,但这对我来说是一个开始。
您可以使用
re.sub(r"(.)*", lambda x: "{}{}".format(len(x.group()), x.group(1)), text)
详情
(.)*
是一种模式,它匹配并捕获一个字符(换行符字符除外,使用re.DOTALL
也可以匹配换行符),然后匹配 0+ 个与组 1 中相同的字符.lambda x: "{}{}".format(len(x.group()), x.group(1))
是替换,其中x
是找到的匹配对象,return 值是整个匹配长度的串联 (len(x.group())
)和第 1 组中的字符 (x.group(1)
).