我正在开发一个前端的类 Excel 计算功能。
这是一个错误的公式,要得出“H4H4H4”、“J3J3J3J3”,可能有多个匹配。
=A1+M2-N2+H4H4H4+G7+H5/J3*PREXM('','','')
=A1+M2-N2+H4H4+G7+H5/J3J3J3J3*PREXM('','','')
正确的是这样的:
=A1+M2-N2+H4+G7+H5/J3*PREXM('','','')
1 ccraohng 2021-04-13 09:52:27 +08:00 ![]() 假设规则是 去掉重复的 一个大写字母一个数字吧 ```js g = /([A-Z]\d)\1+/g s = "A1+M2-N2N2+H4H4+G7+H5/J3J3J3J3*PREXM('','','')" s.replace(g, '$1') ``` |
2 skys215 2021-04-13 09:53:09 +08:00 ![]() `([A-Z]\d){2,}` 就可以匹配到了吧? |
![]() | 3 Jeyfang 2021-04-13 10:00:24 +08:00 2 楼的就可以 |
![]() | 4 no1xsyzy 2021-04-13 10:57:58 +08:00 如果是 H1H2H3H4 这种怎么办? 是否有 AA1234 这种地址? [A-Z]\d 看上去不够 |
![]() | 5 w292614191 OP |
![]() | 6 w292614191 OP @ccraohng #1 你这个也可,但是不能满足 4 楼提出的那种情况。非常感谢。 |
7 JeffGe 2021-04-13 11:13:55 +08:00 via Android .replace(/([A-Z]+\d+)\1+/g, '$1') |
![]() | 8 imlinhanchao 2021-04-13 11:18:22 +08:00 我觉得你需要的是这个: https://www.npmjs.com/package/excel-formula-sdk |
![]() | 9 w292614191 OP @imlinhanchao #8 感谢,我们已有一个词法解析器,结合了自己的业务。 |
![]() | 10 balabalaguguji 2021-04-13 11:30:42 +08:00 |
11 youhuo 2021-04-13 13:15:03 +08:00 2 楼不错 |
![]() | 12 ditel 2021-04-13 13:22:02 +08:00 via Android 感觉为了以后的方便,该这样比较好 g = /([A-Z]+\d+)\1+/g |