【发布时间】:2020-06-12 10:50:35
【问题描述】:
给定这样的模式
pattern = re.compile(r'\b(A|B|C)\b')
还有一个huge_string 我想用字符串D 替换每个匹配模式的子字符串,并找出每个字符串A、B 和C 的出现次数。最可行的方法是什么?
一种方法是将模式拆分为每个字符串的 3 个模式,然后使用 subn
pattern_a = re.compile(r'\bA\b')
pattern_b = re.compile(r'\bB\b')
pattern_c = re.compile(r'\bC\b')
huge_string, no_a = re.subn(pattern_a, D, huge_string)
huge_string, no_b = re.subn(pattern_b, D, huge_string)
huge_string, no_c = re.subn(pattern_c, D, huge_string)
但它需要 3 次通过 huge_string。有没有更好的办法?
【问题讨论】:
标签: python-3.x regex python-re