Python正则表达式字符类

Python正则表达式字符类,python,regex,Python,Regex,Python 3 我最近开始阅读正则表达式>代码,并考虑以下情况: 如果输入是AB后跟C或D我想用EF 因此,我的char类是[CD],它应该是非捕获的 使用re.sub我得出以下结论: re.sub(r'AB(?:[CD])','EF',text) 当我为输入ABCZ运行此代码时,我得到EFZ 谢谢 不捕获并不意味着它不包括在比赛中。它只是意味着它不是作为一个组捕获的(因此您不能使用像\1这样的反向引用来引用它) 如果您想指定[CD]应跟随但不包括在匹配中,则需要使用前瞻: >>

Python 3

我最近开始阅读<代码>正则表达式>代码,并考虑以下情况:

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

因此,我的
char类
[CD]
,它应该是
非捕获的

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

re.sub(r'AB(?:[CD])','EF',text)
当我为输入ABCZ运行此代码时,我得到EFZ


谢谢

不捕获并不意味着它不包括在比赛中。它只是意味着它不是作为一个组捕获的(因此您不能使用像
\1
这样的反向引用来引用它)

如果您想指定
[CD]
应跟随但不包括在匹配中,则需要使用前瞻:

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

不捕获并不意味着它不包括在比赛中。它只是意味着它不是作为一个组捕获的(因此您不能使用像
\1
这样的反向引用来引用它)

如果您想指定
[CD]
应跟随但不包括在匹配中,则需要使用前瞻:

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

不捕获并不意味着它不包括在比赛中。它只是意味着它不是作为一个组捕获的(因此您不能使用像
\1
这样的反向引用来引用它)

如果您想指定
[CD]
应跟随但不包括在匹配中,则需要使用前瞻:

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

不捕获并不意味着它不包括在比赛中。它只是意味着它不是作为一个组捕获的(因此您不能使用像
\1
这样的反向引用来引用它)

如果您想指定
[CD]
应跟随但不包括在匹配中,则需要使用前瞻:

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