Python re.sub将字符串的一部分更改为ascii

克里希纳
test1 = "<test>222</test>blah blah blah"
newVal = "222"
mstring = "(<test>).*(</test>)"
newString = re.sub(mstring,rf"\1{newVal}\2",test1)
print(newString)

我试图在我的字符串中找到一个特定的值,并使用re.sub函数替换为另一个字符串。似乎我找到了正确的匹配项并替换了,但是python正在将字符串的一部分转换为它的ascii等效值。你能帮我上面的代码,以便我产生以下输出吗

<test>222</test>blah blah blah

相反,我得到低于结果

R2</test>blah blah blah
里卡多·布科(Riccardo Bucco)

这是一个可能的解决方案:

test1 = "<test>222</test>blah blah blah"
newVal = "111"
mstring = "(<test>).*(</test>)"
newString = re.sub(mstring, f'\g<1>{newVal}\g<2>', test1)`
print(newString) # <test>111</test>blah blah blah

您的方法可以与newVal例如一封信一起使用:

newVal = "a"
re.sub(mstring, f'\1{newVal}\2', test1) # <test>a</test>blah blah blah

这种奇怪的行为是由于以下事实\1{newVal}:(带有newVal=333)将被解释为对组1333的引用。\g<1>语法等效于\1,但在替换中并不歧义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python re.split()将分隔符的部分保留为第一个字符串的一部分,而其他保留为第二个字符串的一部分,依此类推

Python 根据列表中的条件更改字符串的一部分

覆盖文件的一部分将导致空字符串Python 3

Python-re.sub而不替换正则表达式的一部分

在re.findall()结果中替换字符串的一部分

python-从查询结果中获取字符串的一部分

使用python查找字符串的一部分?

在Python中删除带有坐标的字符串的一部分

在Python中删除用点号分隔的字符串的最后一部分

在python中提取字符串的一部分

Python-使用变量作为字符串格式的一部分

Django Python:无法获取字符串的一部分

在Python 3中删除字符串的一部分

Python 3用dict中的数据替换字符串的一部分

在python中替换第一部分字符串的单词

在Python中替换字符串的一部分?

在Python中替换字符串的一部分?

Python识别字符串的一部分(位置和长度)

Python Regex替换字符串的一部分

如何在python数组中查找字符串的一部分

在python中剪切一部分字符串变量(网络抓取)

在python列表中替换字符串的一部分

当字符串是模式时,Python替换单词而不是单词的一部分

如何在python列表中删除字符串的一部分?

Python中的连接顺序错误,并覆盖了字符串的一部分

Python 3删除文件字符串的一部分

Python:修改.cfg文件中的一部分字符串

如何在python中将字符串用作变量的一部分

Python Pandas 替换字符串的一部分