python re.sub使用整数操作

python re.sub使用整数操作,python,regex,Python,Regex,我目前有一个模式替换,它执行以下操作: x = re.sub('(\d+)','\g<1>','100') => x = 100 x=re.sub(“(\d+)”、“\g”、“100”) =>x=100 我需要能够在替换中将整数除以10,因为模式和替换是来自数据库文本字段的输入(所以我不能使用代码)。有没有办法做到这一点,使=>x=10 谢谢, Richard您可以通过将函数作为第二个参数传递给re.sub来实现这一点。将使用MatchObject调用该函数: >&g

我目前有一个模式替换,它执行以下操作:

x = re.sub('(\d+)','\g<1>','100')
=> x = 100
x=re.sub(“(\d+)”、“\g”、“100”)
=>x=100
我需要能够在替换中将整数除以10,因为模式和替换是来自数据库文本字段的输入(所以我不能使用代码)。有没有办法做到这一点,使=>x=10

谢谢,
Richard

您可以通过将函数作为第二个参数传递给re.sub来实现这一点。将使用MatchObject调用该函数:

>>> def repl(mo):
...    return mo.group(0)[:-1]
... 
>>> import re
>>> re.sub('\d+', repl, '100')
'10'

可以通过将函数作为第二个参数传递给re.sub来实现这一点。将使用MatchObject调用该函数:

>>> def repl(mo):
...    return mo.group(0)[:-1]
... 
>>> import re
>>> re.sub('\d+', repl, '100')
'10'

re.sub可以将函数作为第二个参数

import re

def func(r):
    return str(int(r.group(0)) / 10) 

x = re.sub("\d+", func, "100")
print x

re.sub可以将函数作为第二个参数

import re

def func(r):
    return str(int(r.group(0)) / 10) 

x = re.sub("\d+", func, "100")
print x
可能的重复可能的重复