替代(?!y)但在单词之前

kse*_*yar 4 javascript regex

如果我想排除"yapple",为什么我不能使用(?!y)苹果?

什么是单词之前(?!y)的替代方法?

http://jsfiddle.net/ksevelyar/SbCCx/4/

hug*_*omg 5

回答你原来的问题:

您可以明确地编码"之前没有任何内容(字符串的开头)或非y字符"

/(?:^|[^y])apple/
Run Code Online (Sandbox Code Playgroud)

或者根据你想做的事情,你可以使用单词边界匹配

/\bapple/
Run Code Online (Sandbox Code Playgroud)

\b 匹配字母数字字符(\ w)和非字母数字字符(\ W)之间的边界


其他环境(如Perl)有时会内置这种后置功能:

/(?=)/   positive lookahead
/(?!)/   negative lookahead
/(?<=)/  positive lookbehind
/(?<!)/  negative lookbehind
Run Code Online (Sandbox Code Playgroud)

至于不替换pre内部的东西的问题

如果您执行两个步骤可能会更容易:首先<pre>从字符串中删除标记内的所有文本,然后执行替换,然后在完成后添加隐藏文本.