Python正则表达式替换部分字符串

标签 python regex substitution

我正在尝试替换字符串的特定部分。每当我有一个反斜杠,后跟一个大写字母时,我希望将反斜杠替换为制表符。就像本例中一样:

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

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

最佳答案

您可以将 /(?=[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

关于Python正则表达式替换部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55284820/

相关文章:

python - OpenCV:rbg-> hsv-> rgb是否无损?

python - 在 python 中将随机字符串转换为日期会引发组名 'm' 的重新定义

python - 如果不属于 Python 中的一组匹配模式,则删除字符串中的字符

python - Django 正则表达式 unicode 忽略\w 标签

替换字典键和/或值的 Pythonic 方法

Python 安全地执行用户输入的 grep 命令

java - 正则表达式匹配第一个新行后跟不间断空格字符

正则表达式变量字母数字匹配

unix - 在Linux中使用sed过滤html标签

loops - vim 嵌套单行循环中断命令