Python Regex替换了部分字符串

问题描述 投票:1回答:1

我正在尝试替换我的字符串的特定部分。每次我有一个反斜杠,后面跟一个大写字母,我想用反斜杠替换反斜杠。就像在这种情况下:

Hello/My daugher/son

输出应该是这样的

Hello    My daugher/son

我试过使用re.sub():

for x in a:
    x = re.sub('\/[A-Z]', '\t[A-Z]', x)

但后来我的输出变成了:

Hello    [A-Z]y daugher/son

这真的不是我想要的。有没有更好的方法来解决这个问题,也许不是正则表达式?

python regex substitution
1个回答
2
投票

你可以用/(?=[A-Z])替换\t。请注意,在Python中,您不需要将/作为\/转义

检查这个Python代码,

import re 

s = 'Hello/My daugher/son'
print(re.sub(r'/(?=[A-Z])',r'\t',s))

打印,

Hello   My daugher/son

或者,按照您尝试替换的方式,您需要使用/([A-Z])正则表达式捕获组中的大写字母,然后将其替换为\t\1以恢复在group1中捕获的内容。检查这个Python代码,

import re 

s = 'Hello/My daugher/son'
print(re.sub(r'/([A-Z])',r'\t\1',s))

再次打印,

Hello   My daugher/son
© www.soinside.com 2019 - 2024. All rights reserved.