2024-05-12 01:06:12 发布
网友
我目前有一个模式替换,它执行以下操作:
x = re.sub('(\d+)','\g<1>','100') => x = 100
我需要能够在替换中将整数除以10,因为模式和替换是来自数据库文本字段的输入(所以我不能使用代码)。有没有办法让=>;x=10
谢谢, 理查德
在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'
在re.sub公司可以将函数作为第二个参数。在
可以通过将函数作为第二个参数传递给re.sub公司。将使用MatchObject调用该函数:
相关问题 更多 >
编程相关推荐