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

用于匹配三个字母的regexp,但不用于文本“购买”

  •  25
  • vmg  · 技术社区  · 15 年前

    我在表单上有两个按钮,其中一个按钮包含货币代码(欧元、美元、英镑、瑞士法郎等),另一个按钮包含一个交易方向(买卖)。一些实用程序通过文本识别按钮。 要用货币识别按钮,我使用正则表达式“:[a-z]3”,但当第二个按钮包含文本“buy”(regex description返回多个对象)时,它不能正常工作。

    问题:如何为正则表达式编写模式,这意味着:仅当文本包含三个大写字母,而不是文本“购买”时匹配?

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  47
  •   Community Mohan Dere    9 年前
    ^(?!BUY)[A-Z]{3}$
    

    (?!BUY) negative lookahead 如果它与regex匹配,那就失败了 BUY

        2
  •  9
  •   Daniel Brückner    15 年前

    您可以使用否定的查找断言来验证刚刚匹配的文本不等于 .

    [A-Z]{3}(?<!BUY)