使用正则表达式在 javascript 中进行全词搜索

2024-03-22

我正在尝试使用以下正则表达式在 javascript 中执行整个单词搜索。

str = "Test String C.S (example)";
var regex_search = new RegExp("\\b"+search_string+"\\b","g");
if(str.match(regex_search)) != null)
  match = true;
else
  match = false;

如果我搜索像“String”这样的普通字符串,上面的方法效果很好。但如果我只搜索“S”,它会返回 C.S 作为匹配项。另外,搜索 example 返回一个匹配项,但在这种情况下我不需要匹配项,因为它有括号。我只想匹配整个单词。任何建议将不胜感激。

--Edit--

感谢@plalx 澄清了这个例子。


使用捕获组?

.*?\b(S)

调试演示 http://www.debuggex.com/r/lUsQMz382TVLmX0t

我认为你的第二个\b也破坏了你的代码。

只需更换(S)与您想要找到的值。

说实话,不太确定你到底要问什么。或者你想找到什么。

edit:

.*?(?:^|\s)(S[^\s$]*).*?

调试演示 http://www.debuggex.com/r/_SZn1oGNEtQCbgiA

你可以取出.*?为了彻底起见,在正则表达式的开头和结尾将其放在那里。

更换S在...前面[^\s$]与您要检查的值。 另外,如果你想在值前面允许更多的东西,你所要做的就是添加一个额外的|"character"在第一个捕获组中。

例如括号

.*?(?:^|\s|\()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用正则表达式在 javascript 中进行全词搜索 的相关文章

随机推荐