V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
w292614191
V2EX  ›  JavaScript

各位大佬,求一个正则。

  •  
  •   w292614191 · 2021 年 4 月 13 日 · 3264 次点击
    这是一个创建于 1757 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我正在开发一个前端的类 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('','','')

    12 条回复    2021-04-13 13:22:02 +08:00
    ccraohng
        1
    ccraohng  
       2021 年 4 月 13 日   ❤️ 1
    假设规则是 去掉重复的 一个大写字母一个数字吧

    ```js
    g = /([A-Z]\d)\1+/g

    s = "A1+M2-N2N2+H4H4+G7+H5/J3J3J3J3*PREXM('','','')"

    s.replace(g, '$1')

    ```
    skys215
        2
    skys215  
       2021 年 4 月 13 日   ❤️ 2
    `([A-Z]\d){2,}` 就可以匹配到了吧?
    Jeyfang
        3
    Jeyfang  
       2021 年 4 月 13 日
    2 楼的就可以
    no1xsyzy
        4
    no1xsyzy  
       2021 年 4 月 13 日
    如果是 H1H2H3H4 这种怎么办?

    是否有 AA1234 这种地址? [A-Z]\d 看上去不够
    w292614191
        5
    w292614191  
    OP
       2021 年 4 月 13 日
    @no1xsyzy #4
    @skys215 #2

    ganxi 感谢。看起来可行。
    w292614191
        6
    w292614191  
    OP
       2021 年 4 月 13 日
    @ccraohng #1 你这个也可,但是不能满足 4 楼提出的那种情况。非常感谢。
    JeffGe
        7
    JeffGe  
       2021 年 4 月 13 日 via Android
    .replace(/([A-Z]+\d+)\1+/g, '$1')
    imlinhanchao
        8
    imlinhanchao  
       2021 年 4 月 13 日
    我觉得你需要的是这个: https://www.npmjs.com/package/excel-formula-sdk
    w292614191
        9
    w292614191  
    OP
       2021 年 4 月 13 日
    @imlinhanchao #8 感谢,我们已有一个词法解析器,结合了自己的业务。
    balabalaguguji
        10
    balabalaguguji  
       2021 年 4 月 13 日
    youhuo
        11
    youhuo  
       2021 年 4 月 13 日
    2 楼不错
    ditel
        12
    ditel  
       2021 年 4 月 13 日 via Android
    感觉为了以后的方便,该这样比较好

    g = /([A-Z]+\d+)\1+/g
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1675 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:03 · PVG 08:03 · LAX 16:03 · JFK 19:03
    ♥ Do have faith in what you're doing.