作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设您有以下字符串:
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)
代码适用于括号前的数字。
如何修改代码以在左括号之前包含右括号?
最佳答案
您可以使用正向后视:
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)
关于python - 在括号之间插入乘号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53228036/
特别是,使用注入(inject),以下脚本, puts (1..5).inject {|x, y| x * y} 和 puts (1..5).inject(:*), 如我所料,两者都有输出 120。
我是一名优秀的程序员,十分优秀!