附加带有整数值的字符串 python re

appending string with integer values python re

我试图在 python

中使用正则表达式将日期插入字符串
link = 'branch=;deps=;date=;rev=;days=1;user='
date = "10.12.2016"
re.sub(r'(.*)(date=[^;]*)(.*)','\1\2'+date+'\3',link)

我期望输出是

'branch=;deps=;date=10.12.2016;rev=;days=1;user='

但我得到了这个,

'branch=;deps=;**\x88.12.2016**;rev=;days=1;user='

另一件事,如果我在日期变量中有一些字符串,它替换就好了。

date="hello"
re.sub(r'(.*)(date=[^;]*)(.*)','\1\2'+date+'\3',link)

给予,

'branch=;deps=;**date=hello**;rev=;days=1;user='

这可能是什么问题?

为什么这么难?跳过 re:

>>> link = 'branch=;deps=;date=;rev=;days=1;user='
>>> date = "10.12.2016"
>>> link = link.replace('date=','date='+date)
>>> link
'branch=;deps=;date=10.12.2016;rev=;days=1;user='

或与re,但基本相同:

>>> re.sub(r'date=','date='+date,link)
'branch=;deps=;date=10.12.2016;rev=;days=1;user='

您的脚本中的错误是 '\1\2'+date+'\3' 计算结果为 '\1\210.12.2016\3''\210' 计算为八进制转义,相当于 '\x88'。您可以使用 \g<n> 序列修复该问题:

>>> re.sub(r'(.*)(date=[^;]*)(.*)','\1\g<2>'+date+'\3',link)
'branch=;deps=;date=10.12.2016;rev=;days=1;user='