假设您具有以下字符串:
5 + 5(5)
我想在5和(5)之间插入一个乘法符号
5 + 5 *(5)
现在还假设您还有以下其他可能性:
5+(5)(5)
我想在(5)和(5)之间插入一个乘法符号
5+(5)*(5)
我的尝试
import re
ex1 = '4+6.9(39.3)(-2.3)(5+4)'
def convert(string):
return re.sub(r"((?:\d+)|(?:[a-zA-Z]\w*\(\w+\)))((?:[a-zA-Z]\w*)|\()", r"\1*\2", string)
print(convert(ex1))
4 + 6.9 *(39.3)(-2.3)(5 + 4)
此代码仅将乘法添加到第一个实例。
如果字符串是:
ex2 = '5(5)+5(5)+5(5)'
5 *(5)+ 5 *(5)+ 5 *(5)
该代码适用于括号前的数字。
如何修改代码以在打开的括号之前包含封闭的括号?
答案 0 :(得分:4)
您可以在正后方使用
import re
a = '4+6.9(39.3)(-2.3)(5+4)'
print(re.sub('(?<=\d|\))(\()', '*(', a))
#4+6.9*(39.3)*(-2.3)*(5+4)
答案 1 :(得分:0)
如果我理解正确,则需要在出现“(”的地方插入“ *”符号。
在这种情况下,这将为您提供所需的内容:
ex1 = '4+6.9(39.3)(-2.3)(5+4)'
print(''.join(['*' + x if x == '(' else x for x in ex1]))
#4+6.9*(39.3)*(-2.3)*(5+4)