Я ищу, чтобы соответствовать /(?=\W)(gimme)(?=\W)/gi
или похожим. Предполагается, что \W
являются символами нулевой ширины, которые окружают мое фактическое совпадение.Конкретный regex положительный внешний вид (вокруг | впереди | сзади) в Javascript
Возможно, некоторые фоне. Я хочу, чтобы те заменили определенные слова (всегда \w+
) с добавлением некоторого буквального дополнения, но только если оно не окружено \w
. (Это звучит как негативный обзор, но я слышу, что JS этого не делает !?)
(Кстати, вышеупомянутое «gimme» - это буква буквально, который я хочу заменить. Если это не было очевидно.)
Оно должно быть (?) а lookaround, потому что \W
должна быть нулевой шириной, потому что намерение является .replace(...)
и я не могу заменить/копировать окружающие персонаж.
Так что это не будет работать:
text.replace(/(?=\W)(gimme)(?=\W)/gi, function(l, match, r) {
return l + doMagic(match) + r;
})
Нулевой шириной символов должны быть проигнорированы, так что функция может возвращать (и заменить) толькоdoMagic(match)
.
У меня только очень ограниченный опыт поиска и отсутствие его в JS. Grazie.
PS. Или, может быть, мне нужен lookbehind, и они не поддерживаются в JS ..? Я смущен?
PS. Немного контекста: http://jsfiddle.net/rudiedirkx/kMs2N/show/ (ooh a link!)
lookbehind не поддерживается в JS - вы можете использовать короткую ссылку на слово, хотя '\ b' –
Джоанна, я люблю тебя, разве я вам это говорил? Строчная буква 'b' теперь является моим новым героем! Милая! Отлично! И на самом деле гораздо проще, чем два раза ... Если вы хотите rep, создайте ответ, и все это ваше! – Rudie
lol: -D см. Несколько других вариантов в моем ответе ниже –