regex 如何使用正则表达式sub来替换子字符串?

7rfyedvj  于 2022-12-14  发布在  其他
关注(0)|答案(3)|浏览(198)

我的问题是我如何使用正则表达式子字符串的方式,以获得替代子字符串是通过变异匹配的部分?让我解释一下,如果原始字符串是“最多的评论日志在编码是Hello World”,那么修改后的字符串应该是“最多的评论日志在编码是Hello1 World1”
假设正则表达式为r'[A-Z][a-z]+'
我如何在每一场比赛之后或重要的是在每一场比赛之间添加一些东西?
请帮帮我
我试过正则表达式sub,split等

kuarbcqp

kuarbcqp1#

这应该可以实现此目的,但您需要提供一个字符串

suffix="1"
x = "The most comment log in coding is Hello World"
for i in re.finditer('[A-Z][a-z]+', x):
    x = x.replace(i.group(), f"{i.group()}{suffix}")
print(x)

输出

The1 most comment log in coding is Hello1 World1
icnyk63a

icnyk63a2#

看起来您只希望在单词以大写字母开头的地方附加值,这是一个假设,但如果是这样的话,类似这样的东西将是合适的;

import regex as re
startingString = "The most comment log in coding is Hello World"
appendedValue = "1"
pattern = re.compile(r'\b[A-Z]\w*\b')
print(pattern.sub(r'\g<0>'+appendedValue, startingString))

输出量:

The1 most comment log in coding is Hello1 World1
klsxnrf1

klsxnrf13#

您可以使用\g<0>来引用完全匹配,然后在它后面追加1

import re
s = "The most comment log in coding is Hello World"
print(re.sub(r"[A-Z][a-z]+", r"\g<0>1", s))

输出量

The1 most comment log in coding is Hello1 World1

相关问题