import redef addMultiplication(input1): return re.sub(r'([^-+*/])\(', r'\1*(', input1)我有一個函數(shù),它將采用一個字符串,并在有括號符號化乘法時添加乘法符號。這里有一些例子(工作):“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)”注意 我不得不在上面的兩個示例中添加一些額外的空格,否則它會保持斜體和格式。所以基本上,如果我去掉上面兩個例子中的空格,它就會起作用,但是當(dāng)我在星號后面留下一個空格時,它就會出現(xiàn)故障。如何將多余的空格合并到我的 regrex 表達(dá)式中?我嘗試使用,但我不確定它是如何工作的。\s
1 回答

HUH函數(shù)
TA貢獻(xiàn)1836條經(jīng)驗 獲得超4個贊
一種查看方式是,您希望在任何字符,數(shù)字或右括號()之間放置一個,后跟一個左括號(),或任何右括號,后跟一個字符,數(shù)字或左括號;中間有一些空格。您可以為此目的使用前瞻,捕獲組 1 中的初始字符/數(shù)字/括號:*
)
(
([a-z0-9)](?= *\()|\)(?= *[a-z0-9(]))
然后,您可以將其替換為 。請注意,您應(yīng)該使用(不區(qū)分大小寫,也 ) 標(biāo)志,以便它適用于 A(B) 等表達(dá)式。\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
提交
取消