JS регулярное выражение (? <! X) A - PullRequest
7 голосов
/ 11 августа 2011

Кто-нибудь знает, как перевести POSIX регулярное выражение (?<!X)A в JS?

Найти A, только если не предшествует X.

Ответы [ 3 ]

5 голосов
/ 11 августа 2011

Просто проверьте либо начало (эрго нет X), либо наличие символа, отличного от X.

(^|[^X])A

Для более чем одного символа вы можете проверить A, а затемпроверьте сопоставленный текст для X, за которым следует A, и отмените совпадение, если оно соответствует второму шаблону.

3 голосов
/ 11 августа 2011

Краткий ответ: вы не можете.

JavaScript RegExp Object не поддерживает отрицательный взгляд назад.

0 голосов
/ 11 августа 2011

Попробуйте это:

var str = "ab"; 
console.log(/a(?!x)/i.exec(str)); //a

var str = "ax"; 
console.log(/a(?!x)/i.exec(str)); //null

если вам нужна часть после "a", попробуйте:

   /a(?!x).*/i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...