在我一個問題要解決,我必須代替我的取值範圍在Excel公式與他們相當的單元格引用,即,例如,如果我有一個Excel公式:正則表達式匹配Excel公式
= SUM(F10:F14)
我有來代替它:
= SUM(F10,F11,F12,F13,F14)。
我想匹配的正則表達式,這有助於我找到
- 如果一個Excel公式已與模式,其中包括定義爲:「點心」和「:」
- 要提取細胞被包括在範圍內,如在F10:F14
不知何故,我停留在點1 :-)
因爲,這我創建以下模式:
Regex formulaMatcher = new Regex(@"=*SUM\([\w]*[\w,]*[\w]+:[\w]+[\w]*[\w,]*\)*");
foreach (Match m in formulaMatcher.Matches("=SUM(F55,F151:F159)"))
m.Value.Dump();
現在,上面的圖案是可以正常使用的公式:
// =SUM(F15,F25,F31:F35)
// =SUM(F10:F12,F26,F31)
// =SUM(F45,F55,F61:F63,F40)
// =F14-SUM(F16:F17)
// =SUM(F35:F37)
// =SUM(F10:F13)-F11
// =SUM(F27:F29)/3
// =F19-F21+SUM(F22:F23)
// =ROUND(F43-SUM(F23:F42),2)
// =SUM(F174:F178)+F134+F120+F97
但失敗了:SUM(F81:F89,F105:F113,F128:F135),即,對公式中涉及多個範圍運算符的案例
請幫助我瞭解如何實現上述結果?
乾杯, 阿尼爾
我認爲這是家庭主婦 - 否則這是一個很奇怪的問題 – brettdj