是否可以采用给定的字符串并将其通过正则表达式传递以获得新的格式?
我有两个字符串,a="PRO999"
和b="JHE986"
,以及正则表达式\D{3}_\d{3}
。我希望能够传递这些字符串并获得PRO_999
和JHE_986
。
我可以手动执行此操作,但是我知道有时需要将字符串保留在一起,有时需要应用表达式。
答案 0 :(得分:1)
我们可以在捕获组中使用re.sub
:
a = "PRO999"
out = re.sub(r"(\D{3})(\d{3})", r"\1_\2", a)
re.sub
的默认行为是替换所有匹配项。因此,如果a
有多个匹配项,则将全部替换。
注意:如果您只想将模式作为一个独立的单词进行匹配,则可以在上述模式中添加单词边界:
\b(\D{3})(\d{3})\b