在括号之间插入乘号
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)
假设您有以下字符串:
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)