分享
三行代码  ›  专栏  ›  技术社区  ›  AminoAcid

Regex-如何忽略以逗号结尾的数字

  •  1
  • AminoAcid  · 技术社区  · 7 月前

    我用这个表达式得到了所有的短语,这些短语旁边都有数字和单词。

    [\d+](?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,1}
    

    确诊50例。
    1月30日,有确诊病例。
    1300名妇女被感染。

    比赛:

    50人
    一月 30,那里 是病毒的确诊病例。
    1300名妇女 被感染了。

    问题是,有些案子涉及日期,我不想知道。所以我的预期产出实际上只有这两个

    50人 参与其中。
    1月30日,有确诊病例。
    被感染了。

    如何忽略以逗号结尾的数字?

    , 忽略,但它只是单独计算数字。

    [\d+](?:[^a-zA-Z'-,]+[a-zA-Z'-]+){0,1}
    

    输出:

    50人
    一月 0个 ,有确诊病例。
    1个 , 女性**易受感染。

    1 回复  |  直到 7 月前
        1
  •  2
  •   Michał Turczyn    7 月前

    尝试 \d+(?:,\d+)?\s+[a-zA-Z]+

    \d+ -匹配1+个数字

    (?:...) -非捕获组

    ,\d+ , 和1位以上的数字

    ? -匹配前向模式0或1次( {0,1} 等价物)

    \s+ -匹配1+空格

    [a-zA-Z]+ -匹配1+小写或大写字符

    Demo