Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于带括号的单词边界检测的javascript regexp_Javascript_Regex - Fatal编程技术网

用于带括号的单词边界检测的javascript regexp

用于带括号的单词边界检测的javascript regexp,javascript,regex,Javascript,Regex,我有一个字符串“我是一个机器人,我被命名为456/m(4)。忘记这个名字(它没有任何意义)” 现在我想从这个字符串中提取所有单词 为此,我使用正则表达式: /\b[\w\S]+\b/g 它返回字符串中的所有单词,除了有一个单词“456/(4)”而不是“456/(4)”。我理解这是因为它是一个单词边界,但是有没有一种方法可以说它不是一个合法的单词边界,因为没有“合法的”开始使用括号?我现在做得更好了。它正是你想要的 \b(?>\([\w\/]+\)|[\w\/])+ 如果您想要一个ja

我有一个字符串“我是一个机器人,我被命名为456/m(4)。忘记这个名字(它没有任何意义)”

现在我想从这个字符串中提取所有单词 为此,我使用正则表达式:

/\b[\w\S]+\b/g

它返回字符串中的所有单词,除了有一个单词“456/(4)”而不是“456/(4)”。我理解这是因为它是一个单词边界,但是有没有一种方法可以说它不是一个合法的单词边界,因为没有“合法的”开始使用括号?

我现在做得更好了。它正是你想要的

\b(?>\([\w\/]+\)|[\w\/])+

如果您想要一个javascript友好的版本:

((?:(?=(\([\w\/]+\)|[\w\/]))\2)+)
只需使用捕获组1即可


很抱歉,这似乎不适用于“暴露于360J/m(2)和456/m(4)”的情况我相信我的问题比你提出的这个快速解决方案更一般。@suzee我刚刚更新了它,以便更好地为你服务。我很忙,所以不能早点回来。对不起!@suzee我改进了它。现在它只会抓住括号,如果它是单词的一部分。@suzee请不要做错误的编辑。这个网站上没有人真正检查它我为你的答案添加了一个正确的javascript友好版本。