pythonre.sub公司使用整数运算

2024-05-12 01:06:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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

x = re.sub('(\d+)','\g<1>','100')
=> x = 100

我需要能够在替换中将整数除以10,因为模式和替换是来自数据库文本字段的输入(所以我不能使用代码)。有没有办法让=>;x=10

谢谢, 理查德


Tags: 代码文本gtre数据库模式整数中将
3条回答

在re.sub公司可以将函数作为第二个参数。在

import re

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

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

t = 'a b c 100 200'

f = lambda x: str(int(x.group(0)) / 10)
re.sub('\d+', f, t)

# returns 'a b c 10 20'

可以通过将函数作为第二个参数传递给re.sub公司。将使用MatchObject调用该函数:

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

相关问题 更多 >