RegExp用于匹配三个字母,但不是文本"BUY"

vmg*_*vmg 28 regex

表格上有两个按钮,其中一个按钮包含货币代码(欧元,美元,英镑,瑞士法郎,......)和另一个按钮 - 交易方向(买入或卖出).并且一些实用程序通过它的文本识别按钮.要识别带有货币的按钮,我使用正则表达式":[AZ] {3}",但当第二个按钮包含文本"BUY"(正则表达式描述返回多个对象)时,它无法正常工作.

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

谢谢!

Ama*_*osh 53

^(?!BUY)[A-Z]{3}$
Run Code Online (Sandbox Code Playgroud)

(?!BUY)排除模式,如果它的正则表达式匹配会失败BUY


Dan*_*ner 12

您可以使用负面的后置断言来验证刚匹配的文本不等于BUY.

[A-Z]{3}(?<!BUY)
Run Code Online (Sandbox Code Playgroud)

  • 在不同的正则表达式实现中,前瞻版本得到了更广泛的支持,并且具有更好的性能(我认为). (3认同)