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

regex在数字旁边而不是字母旁边选择“-”

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

    https://regex101.com/r/czmlFD/6

    请看一下我现在的正则表达式。我希望一切都保持原样,只是我不想它把 - 在里面 non-gaap value-added 但它必须仍能找出其他的负数。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Obsidian Age    6 年前

    这个怎么样:

    (?<!\S)[\$\(]{0,2}[-\d][\d,.]*\)?%?

    消极的旁观者 (?<!\S) 将断言regex不能在字母之后,这将从匹配项中消除带连字符的字符串。

    另外,开始时的变化 \$?\(? [\$\(]{0,2} 意味着左括号 ($2,605) 现在将包括在这场比赛中,同时也只允许最多两美元的标志和左括号坐在一起。

    最后,从 0-9 \d 在您的集合中将保存两个字符。

    所有其他比赛仍在进行中。

    这可以看出是有效的 here .