import redef addMultiplication(input1): return re.sub(r'([^-+*/])\(', r'\1*(', input1)我有一个函数,它将采用一个字符串,并在有括号符号化乘法时添加乘法符号。这里有一些例子(工作):“4(3)” -> “4*(3)”“(4)(3)” -> “(4)*(3)”“4*2 + 9 -4(-3)” - > “4*2 + 9 -4*(-3)”“(-9)(-2) (4)” -> “(-9)*(2) *(4)”“4^(3)” -> “4^(3)”“(4-3)(4+2)” -> “(4-3)*(4+2)”“(Aflkdsjalkb)(g)” -> “(Aflkdsjalkb)*(g)”“g(d)(f)” -> “g“(4) (3)” -> “(4)*(3)”以下是我失败的一些示例(由于添加了空格),箭头指向我的代码的输出最右边,粗体是我想要的:“(4)* (3)” -> “(4) * * (3)” |“(4)*(3)”“(4-3* (2)” -> “4-3* *(2)” | 4-3 * (2)”注意 我不得不在上面的两个示例中添加一些额外的空格,否则它会保持斜体和格式。所以基本上,如果我去掉上面两个例子中的空格,它就会起作用,但是当我在星号后面留下一个空格时,它就会出现故障。如何将多余的空格合并到我的 regrex 表达式中?我尝试使用,但我不确定它是如何工作的。\s
1 回答
HUH函数
TA贡献1836条经验 获得超4个赞
一种查看方式是,您希望在任何字符,数字或右括号()之间放置一个,后跟一个左括号(),或任何右括号,后跟一个字符,数字或左括号;中间有一些空格。您可以为此目的使用前瞻,捕获组 1 中的初始字符/数字/括号:*
)
(
([a-z0-9)](?= *\()|\)(?= *[a-z0-9(]))
然后,您可以将其替换为 。请注意,您应该使用(不区分大小写,也 ) 标志,以便它适用于 A(B) 等表达式。\1*
re.IGNORECASE
re.I
在蟒蛇中:
def addMultiplication(input1): return re.sub(r'([a-z0-9)](?= *\()|\)(?= *[a-z0-9(]))', r'\1*', input1, 0, re.IGNORECASE)
添加回答
举报
0/150
提交
取消