import re
def addMultiplication(input1):
return re.sub(r'([^-+*/])\(', r'\1*(', input1)
我有一个函数,只要有括号表示乘法,我就会取一个字符串并添加乘法符号。
这里的一些例子(这项工作):
下面是一些我失败的例子(因为添加了空格),箭头指向我的代码的输出,最右边,用粗体表示的是我想要的:
注意,我必须在上面的两个例子中添加一些额外的空格,因为否则它会保持斜体化和格式化。因此,基本上,如果我去掉了上面两个例子中的空白,它就能工作,但是当我在星号后面留下一个空格时,它就会出现故障。
我将如何将额外的空格合并到regrex表达式中?我试过使用\s
,但我不确定它是如何工作的。
发布于 2020-03-26 02:57:56
查看这一点的一种方法是,您希望在任何字符、数字或结束括号()
)之间加上一个开始括号((
),或者在任何结束括号后面加上一个字符、数字或开始括号;中间有一定数量的空格。为此,您可以使用“外观”,在第1组中捕获初始字符/数字/括号:
([a-z0-9)](?= *\()|\)(?= *[a-z0-9(]))
然后,您可以用\1*
替换它。注意,您应该使用re.IGNORECASE
(不区分大小写,也是re.I
)标志,以便它可以用于表达式(如A(B) )。
在python中:
def addMultiplication(input1):
return re.sub(r'([a-z0-9)](?= *\()|\)(?= *[a-z0-9(]))', r'\1*', input1, 0, re.IGNORECASE)
https://stackoverflow.com/questions/60860258
复制相似问题