Javascript: отрицательный взгляд за эквивалентом? - PullRequest
124 голосов
/ 13 марта 2009

Есть ли способ достичь эквивалента негативного взгляда за в регулярных выражениях javascript? Мне нужно сопоставить строку, которая не начинается с определенного набора символов.

Кажется, я не могу найти регулярное выражение, которое делает это без сбоев, если соответствующая часть найдена в начале строки. Отрицательные взгляды, кажется, единственный ответ, но у javascript его нет.

EDIT: Это регулярное выражение, с которым я хотел бы работать, но это не так:

(?<!([abcdefg]))m

Таким образом, это будет соответствовать 'm' в 'jim' или 'm', но не 'jam'

Ответы [ 12 ]

0 голосов
/ 12 апреля 2016

Это эффективно делает

"jim".match(/[^a-g]m/)
> ["im"]
"jam".match(/[^a-g]m/)
> null

Пример поиска и замены

"jim jam".replace(/([^a-g])m/g, "$1M")
> "jiM jam"

Обратите внимание, что отрицательная строка поиска должна быть длиной 1 символ, чтобы это работало.

0 голосов
/ 05 ноября 2013

/(?![abcdefg])[^abcdefg]m/gi да, это трюк.

...