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

从正则表达式查询中删除字符

  •  0
  • Benny  · 技术社区  · 6 年前

    ([\-:, ]{1,})[^0-9]
    

    这是我的测试文本:

    Test- Product-: 1 --- 3 hour  ,--kayak:--rental
    

    它总是包含每个起始词的第一个字符,比如Product上的P或hour上的h,如何防止regex包含这些第一个字符?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Wiktor Stribiżew    6 年前

    这个 [^0-9] 正则表达式的一部分与除数字以外的任何字符都匹配,因此应该将其从模式中删除。

    无需使用捕获组包装角色类,并且 {0,1} 等于 + ,因此整个正则表达式可以缩短为

    [-:, ]+
    

    注意 - 在字符类中的初始和结束位置不必转义。