我有一个商品的表达式过滤字符串,例如
$city=="Paris" and $country=="France" and $price<100 or $units > 95
。
我想用函数调用替换$
前面的字符串,以从上下文中读取字段的值(ctx)
预期产出:
read(ctx, city)=="Paris" and read(ctx, country)=="France" and read(ctx, price)< 100 or read(ctx, units) > 95
在python中执行此操作的更简洁方法是什么?
答案 0 :(得分:0)
这类似于命名组匹配。但是我在执行替换后使用replace
删除了$
In [1]: re.sub(r'(?P<field>\$[\w]+)', 'read(ctx, "\g<field>")', '$city=="Paris" and $country=="France" and $price<100 or $units > 95').replace("$", '')
Out[1]: 'read(ctx, "city")=="Paris" and read(ctx, "country")=="France" and read(ctx, "price")<100 or read(ctx, "units") > 95'