在括号之间插入乘号

Insert multiplication sign between parenthesis

假设您有以下字符串:

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"*", 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)

代码适用于括号前的数字。

如何修改代码以在左括号之前包含右括号?

您可以使用正后视:

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)

如果我理解正确的话,你需要在出现'('的地方插入'*'符号?

如果是这种情况,这将为您提供所需的信息:

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)