0
的Python 3Python的正則表達式字符類
我最近開始讀regex
,並考慮以下情況:
如果輸入後跟C
或D
AB
我想EF
因此,我的char class
是[CD]
,它應該是non-capturing
。
使用re.sub
我想出如下:
re.sub(r'AB(?:[CD])','EF',text)
當我輸入ABCZ運行這段代碼我得到EFZ
謝謝!
的Python 3Python的正則表達式字符類
我最近開始讀regex
,並考慮以下情況:
如果輸入後跟C
或D
AB
我想EF
因此,我的char class
是[CD]
,它應該是non-capturing
。
使用re.sub
我想出如下:
re.sub(r'AB(?:[CD])','EF',text)
當我輸入ABCZ運行這段代碼我得到EFZ
謝謝!
非捕獲並不意味着它不包含在比賽中。這僅表示它不是作爲一個組捕獲的(因此您不能使用反向引用,如\1
來引用它)。
如果要指定[CD]
應該遵循,但不包括在比賽中,你需要使用一個前瞻:
>>> re.sub(r'AB(?=[CD])','EF','ABCZ')
'EFCZ'