附加带有整数值的字符串 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='
我试图在 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='