2010-07-07 35 views
21

我在表单上有两个按钮,其中一个按钮包含货币代码(EUR,USD,GBP,CHF,..)和另一个 - 交易方向(BUY或卖)。一些实用程序通过它的文本来识别按钮。 要用货币识别按钮,我使用正则表达式“:[A-Z] {3}”,但当第二个按钮包含文本“BUY”(正则表达式返回多个对象)时,它无法正常工作。RegExp用于匹配三个字母,但不包含文本“BUY”

问题:如何才能为正则表达式编写模式,意思是:仅当文本包含三个大写字母时才匹配,但不包含文本“BUY”?

谢谢!

+0

您也可以尝试仅匹配第一个按钮的内容。这样,你不在乎是否添加了第三个按钮“YAY”或“NAY”。 – polygenelubricants 2010-07-08 11:04:14

回答

35
^(?!BUY)[A-Z]{3}$ 

(?!BUY)negative lookahead如果匹配的正则表达式BUY

+0

是的,它的作品:)谢谢你快速回答! – vmg 2010-07-07 13:06:06

5

可以使用负向后看断言验证,只是匹配的文本不等于买入会失败。

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

展望版本在不同的正则表达式实现中得到了更广泛的支持,并且性能更好(我认为)。 – Jens 2010-07-07 13:16:15

+0

这对我java8正则表达式(模拟),但接受的答案没有 – ycomp 2017-11-05 05:19:40

相关问题