如果特定单词的子字符串,则正则表达式忽略匹配

use*_*192 0 javascript regex regex-negation

我正在尝试匹配JavaScript中的文本字符串,只要它不是预定义单词的子字符串即可。

例如,假设我们在文件中包含这些单词,即使存在匹配项,我也不希望在搜索中显示蓝色单词;

value
lunar
blue
clue
Run Code Online (Sandbox Code Playgroud)

因此,如果用户搜索lu,则应该显示除blue以外的所有单词。如果用户要搜索ue,则仅值和线索应该匹配。

我尝试过这样的消极眼光:

((?!blue)lu)
Run Code Online (Sandbox Code Playgroud)

虽然没有用,但我不确定该怎么办。

anu*_*ava 6

您需要\w*在反超前查询和您的搜索字符串之间放置0个或多个单词字符。

lu作为搜索字符串:

/\b(?!blue)\w*lu\w*/
Run Code Online (Sandbox Code Playgroud)

ue作为搜索字符串:

/\b(?!blue)\w*ue\w*/
Run Code Online (Sandbox Code Playgroud)

正则演示

实际的Javascript代码可以是这样的:

var kw = "lu"; or "ue"
var re = new RegExp("\\b(?!blue)\\w*" + kw + "\\w*");
Run Code Online (Sandbox Code Playgroud)

  • 该用户有提出问题而不肯接受答案的恶劣历史。 (2认同)