使用正则表达式在javascript中搜索全字

Nas*_*man 3 javascript

我正在尝试使用以下正则表达式在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;
Run Code Online (Sandbox Code Playgroud)

如果我搜索像'String'这样的普通字符串,上面的效果很好.但是如果我只搜索'S',它会返回CS作为匹配.此外,搜索示例返回一个匹配但在这种情况下我不想匹配,因为它有括号.我只想匹配整个单词.任何建议将不胜感激.

- 编辑 -

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

pro*_*ard 6

使用捕获组?

.*?\b(S)
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

Debuggex演示

我认为你的第二个\b也是破坏你的代码.

只需用S要查找的值替换()即可.

不确定你要说实话的确切内容.或者你想要找到什么.

编辑:

.*?(?:^|\s)(S[^\s$]*).*?
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

Debuggex演示

你可以考虑.*?在正则表达式的开始和结束时把它放在那里以便彻底.

S前面[^\s$]的值替换为要检查的值.此外,如果您想在值前面允许更多内容,您只需|"character"在第一个捕获组中添加一个额外的内容即可.

例如括号

.*?(?:^|\s|\()
Run Code Online (Sandbox Code Playgroud)