Python替换包含十六进制数字的子字符串

时间:2019-01-30 15:42:23

标签: python string

如何在python中用新的十六进制值替换子字符串值(十六进制值0x20E00)?

 <d:var name="Length" value="0x20E00"/>

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式和re.sub()

>>> import re
>>> s = '<d:var name="Length" value="0x20E00"/>'
>>> re.sub(r'0[xX][0-9a-fA-F]+', '0xdeadbeef', s)
'<d:var name="Length" value="0xdeadbeef"/>'

也就是说,如果您正在使用XML,那么最好使用XML parser来操纵它。

答案 1 :(得分:1)

这是将re.sublook behind结合使用的一种方式:

re.sub(r'(?<=value=\").*(?=\")', 'new hex value',s)
'<d:var name="Length" value="new hex value"/>'