简单Python子
我有以下代码:简单Python子,python,Python,我有以下代码: import re Temp = "C4" Num = 5 Temp = re.sub(r'(\w)\d',r'\1%s'%Num, Temp) print Temp 我得到以下错误: PS C:\...> .\try.py Traceback (most recent call last): File "C:\...\try.py", line 10, in <module> Temp = re.sub(r'(\w)\d',r'\1%s'%
import re
Temp = "C4"
Num = 5
Temp = re.sub(r'(\w)\d',r'\1%s'%Num, Temp)
print Temp
我得到以下错误:
PS C:\...> .\try.py
Traceback (most recent call last):
File "C:\...\try.py", line 10, in <module>
Temp = re.sub(r'(\w)\d',r'\1%s'%Num, Temp)
File "C:\Python27\lib\re.py", line 151, in sub
return _compile(pattern, flags).sub(repl, string, count)
File "C:\Python27\lib\re.py", line 275, in filter
return sre_parse.expand_template(template, match)
File "C:\Python27\lib\sre_parse.py", line 802, in expand_template
raise error, "invalid group reference"
sre_constants.error: invalid group reference
PS C:\…>。\try.py
回溯(最近一次呼叫最后一次):
文件“C:\…\try.py”,第10行,在
Temp=re.sub(r'(\w)\d',r'\1%s'%Num,Temp)
文件“C:\Python27\lib\re.py”,第151行,子文件
return\u compile(模式、标志).sub(repl、字符串、计数)
过滤器中第275行的文件“C:\Python27\lib\re.py”
返回sre_parse.expand_模板(模板,匹配)
文件“C:\Python27\lib\sre\u parse.py”,第802行,在展开模板中
引发错误,“无效的组引用”
sre_constants.error:无效的组引用
我做错了什么
r'\1%s'%Num
变成了r'\15
的等价物,因此这实际上是在寻找显然不存在的组#15。若要解决此问题,请将替换中的\1
替换为\g
,这样它就不会受到以下任何数字的影响:
Temp = re.sub(r'(\w)\d',r'\g<1>%s'%Num, Temp)
谢谢F.J!这就解决了问题。我花了好几个小时想弄明白。
Temp = '%s%s' % (re.sub(r'(\w)\d', r'\1', Temp), Num)