正则表达式组引用错误

Rab*_*ole 4 python regex

p = r'([\,|\.]\d{1}$)'
re.sub(p, r"\1", v)
Run Code Online (Sandbox Code Playgroud)

工作,但我想在捕获组中添加零,而不是用捕获组'10'替换,我该怎么做?

re.sub(p, r"\10", v)
Run Code Online (Sandbox Code Playgroud)

失败:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 151, in sub
    return _compile(pattern, flags).sub(repl, string, count)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 275, in filter
    return sre_parse.expand_template(template, match)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sre_parse.py", line 802, in expand_template
    raise error, "invalid group reference"
sre_constants.error: invalid group reference
Run Code Online (Sandbox Code Playgroud)

qst*_*bom 6

只需将组引用包装在'\ g <#>中:

import re
pattern = r'([\,|\.]\d{1}$)'
string = 'Some string .1\n'
rep = r'\g<1>0'
re.sub(pattern, rep, string)
> 'Some string .10\n'
Run Code Online (Sandbox Code Playgroud)

资料来源:http://docs.python.org/2/library/re.html#re.sub