RegExp для сопоставления трех букв, но не текста "КУПИТЬ" - PullRequest
27 голосов
/ 07 июля 2010

У меня есть две кнопки в форме, одна из которых содержит код валюты (EUR, USD, GBP, CHF, ..), а другая - направление торговли (BUY или SELL). А некоторые утилиты распознают кнопки по тексту. Чтобы распознать кнопку с валютами, я использую регулярное выражение «: [A-Z] {3}», но оно не работает должным образом, когда вторая кнопка содержит текст «КУПИТЬ» (описание регулярного выражения возвращает более одного объекта).

Вопрос: как можно написать шаблон для регулярного выражения, что означает: сопоставлять только тогда, когда текст содержит три верхние буквы, но не текст «ПОКУПАТЬ»?

Спасибо!

Ответы [ 2 ]

50 голосов
/ 07 июля 2010
^(?!BUY)[A-Z]{3}$

(?!BUY) - это отрицательный прогноз , который потерпит неудачу, если он будет соответствовать регулярному выражению BUY

10 голосов
/ 07 июля 2010

Вы можете использовать отрицательное утверждение, чтобы убедиться, что только что найденный текст не равен BUY .

[A-Z]{3}(?<!BUY)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...