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

在 一个词之前代替 (?!y) 是什么?

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

最佳答案

回答您的原始问题:

您可以明确编码“前面没有任何内容(字符串开头)或非 y 字符”

/(?:^|[^y])apple/

或者根据您想要做什么,您可以使用字边界匹配
/\bapple/
\b 匹配字母数字字符 (\w) 和非字母数字字符 (\W) 之间的边界

其他环境(如 Perl)有时会方便地内置此后视功能:
/(?=)/   positive lookahead
/(?!)/   negative lookahead
/(?<=)/  positive lookbehind
/(?<!)/  negative lookbehind

至于不替换pre 里面的东西的问题

如果您执行两步过程,也许会更容易:首先从字符串中删除 <pre> 标签内的所有文本,然后进行替换,然后在完成后重新添加隐藏文本。

关于javascript - 替代 (?!y) 但在单词之前,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8214777/

10-09 23:30