Python 正则表达式字符 class

Python Regex char class

Python 3

我最近开始阅读 regex 并考虑以下情况:

如果输入是 AB 后跟 CD 我想用 EF

替换它

所以,我的char class[CD],应该是non-capturing

使用 re.sub 我得出以下结论:

re.sub(r'AB(?:[CD])','EF',text)

当我 运行 输入此代码 ABCZ 我得到 EFZ

谢谢!

未捕获并不意味着它不包含在匹配中。这只是意味着它没有被捕获为一个组(所以你不能使用像 </code> 这样的反向引用来引用它)。</p> <p>如果要指定 <code>[CD] 应该跟随但不包含在匹配中,则需要使用先行:

>>> re.sub(r'AB(?=[CD])','EF','ABCZ')
'EFCZ'