我使用的是python 2。我需要替换字符串中的两个部分。例如低于
str1 = "product,price=(decimals=4, value=7.505),quantity"
str2 = "product,(subporduct,(price=(decimals=4, value=7.05)),quantity"
str3 = "product,(subporduct,item=2, price=(decimals=4, value=7.05)),quantity"
我需要这样的输出,即价格等于浮动数字
- 产品,价格=7.505,数量
- 产品,(子产品,(价格=7.05(,数量
- 产品,(子产品,项目=2,价格=7.05(,数量
我试过这个,但它离开了最后一个括号,否则它对我来说已经足够好了。
print(re.sub("(?<=price=).+?(?<=value=)", "", str1))
我需要python 2 中的解决方案
您可以使用
re.sub(r'(price=)([^()]*?value=([d.]+))', r'12', str1)
请参阅regex演示详细信息:
(price=)
-组1(1
(:price=
子串(
-一个(
字符[^()]*?
-除(
和)
之外的零个或多个字符尽可能少value=
-文字子字符串([d.]+)
-组2(2
(:一个或多个数字或.
字符)
-一个)
字符
替换是第1组和第2组值的串联。