我正在研究一個數學公式,我需要拆分運算元以進行處理,
我re.split('\ |\-|\*|\/', Formula)在 python中使用函式將公式拆分為運算元。
但我有一個符號wa(A,[-126,-123,-120,-117,-114,-111,-108,-105,-102,-99,-96,-93,-90,- 87,-84,-81,-78])-BCD,我無法使用上面的正則運算式拆分它,因為它也拆分了串列中的數字(它采用 - 126 之前也用于拆分)
有什么方法可以使用正則運算式并拆分為['wa(A,[-126,-123,-120,-117,-114,-111,-108,-105,-102,-99,-96 ,-93,-90,-87,-84,-81,-78])','B','C','D'],還是我需要遍歷運算式并撰寫邏輯?
uj5u.com熱心網友回復:
您可以使用交替來匹配后跟左括號直到右括號的單詞字符,或匹配除連字符之外的任何字符。
\w \([^()] \)|[^\s /*-]
請參閱正則運算式演示和Python 演示。
import re
pattern = r"\w \([^()] \)|[^\s /*-] "
s = "wa(A,[-126,5-123,-120,-117,-114,-111,-108,-105,-102,-99,-96,-93,-90,-87,-84,-81,-78])-B-C-D"
print(re.findall(pattern, s))
輸出
['wa(A,[-126,5-123,-120,-117,-114,-111,-108,-105,-102,-99,-96,-93,-90,-87,-84,-81,-78])', 'B', 'C', 'D']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316094.html
