代码之家  ›  专栏  ›  技术社区  ›  player0

用正则表达式理解数量的概念

  •  -1
  • player0  · 技术社区  · 4 年前

    我知道正则表达式不适用于数值,但是,我们如何使用正则表达式模式来区分谷歌表单公式中的数字?

    例如:>=13和<13

    A. B
    期望的结果
    5. 5.
    2. 2.
    13 13
    12 12
    30 30
    17 17
    0 0
    -4 -4
    -12 -12
    22 22
    -55 -55
    31 31
    -13 -13
    -31 -31

    enter image description here

    我可以通过其他方式解决此问题,例如:

    =INDEX(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE("" & A2:A16,
     "\b(^" & JOIN("$|^", SEQUENCE(13, 1, )) & "$)\b", "$1♥"),
     "(^-\d+)", "$1♥"),
     "(\d+$)", "$1♦♦♦"))
    

    enter image description here

    …但我觉得可能还有更多的“regexy”解决方案。

    作战规则:

    • 正则表达式模式
    • 不 IF -语句
    • >=13 添加
    • <13 添加
    • 不 IFERROR 枢轴
    • 没有非正则表达式解决方案
    2 回复  |  直到 4 年前
        1
  •  2
  •   trincot    4 年前

    你可以先加上钻石,然后在数字小于13时用心形代替:

    =REGEXREPLACE(A1 & "♦♦♦"; "^(-\d+|1[0-2]|\d)♦♦♦$"; "$1♥")
    

    正则表达式查找三种模式:

    • -\d+ :任意负数
    • 1[0-2] :10、11或12
    • \d :0,1,2,。。。,或9。
        2
  •  1
  •   Andrej Kesely    4 年前

    尝试:

    =REGEXREPLACE(REGEXREPLACE(TO_TEXT(A1), "^(-\d+|[0-9]|1[0-2])$", "$1♥"), "^([^♥]+)$", "$1♦♦♦")
    

    enter image description here