如何编写正则表达式匹配指定格式的Excel SUM公式?
匹配特定Excel SUM公式的正则表达式
最终正则表达式
^SUM\(INDIRECT\("[A-Z]+"&\(ROW\(-?\d+(?:-\d+)*\)\):INDIRECT\("[A-Z]+"&\(ROW\(-?\d+\)\)\)$
规则适配说明
- 开头的
^SUM\(确保公式严格以SUM开头,满足要求1 - 表达式内包含两次
INDIRECT\(、两次ROW\(和一个冒号:,完全覆盖要求2的匹配条件 [A-Z]+匹配任意大写列标识,兼容单字母(如N/P)和多字母列(如AA/AB)-?\d+(?:-\d+)*适配ROW()后的随机数字逻辑,支持单个正负数字(如-19、+3),也支持多步减法(如-10-5)- 结尾的
$确保匹配完整公式,避免部分匹配的情况
验证示例
以下公式均可被成功匹配:
SUM(INDIRECT("N"&(ROW()-10-5)):INDIRECT("N"&(ROW()-1)))SUM(INDIRECT("P"&(ROW()-19)):INDIRECT("P"&(ROW()-1)))SUM(INDIRECT("AA"&(ROW()+5)):INDIRECT("AA"&(ROW()-2)))
内容的提问来源于stack exchange,提问作者esther lee
相关产品推荐
相关产品推荐

