Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 正则表达式匹配字符串的开头并捕获最后一部分_Javascript_Regex_String - Fatal编程技术网

Javascript 正则表达式匹配字符串的开头并捕获最后一部分

Javascript 正则表达式匹配字符串的开头并捕获最后一部分,javascript,regex,string,Javascript,Regex,String,我有以下一组字符串 big-div button-green big-div button-red big-div button-yellow 我想得到以下结果 green red yellow 我成功地获得了这一结果,但匹配了整个字符串,如按钮黄色 提前谢谢 在[^\s]*周围放置一个捕获组,您可以将其作为第一个捕获组访问 或者,我会写为 var match = (str.match(/\sbutton-(\S*)/gi) || [])[1]; 这将为您提供匹配项,如果无法匹配任何内容,

我有以下一组字符串

big-div button-green
big-div button-red
big-div button-yellow
我想得到以下结果

green
red
yellow
我成功地获得了这一结果,但匹配了整个字符串,如
按钮黄色


提前谢谢

[^\s]*
周围放置一个捕获组,您可以将其作为第一个捕获组访问

或者,我会写为

var match = (str.match(/\sbutton-(\S*)/gi) || [])[1];
这将为您提供匹配项,如果无法匹配任何内容,则为
undefined


如果
str
也是一个类,我会交换
(?:^\s)
(?:$\s)
的边界,或者在
\s
上进行匹配,并用空格包装匹配字符串。

[^\s]*
周围放置一个捕获组,您可以作为第一个捕获组访问该组

str.match(/\sbutton-([^\s]*)/i)[1]
或者,我会写为

var match = (str.match(/\sbutton-(\S*)/gi) || [])[1];
这将为您提供匹配项,如果无法匹配任何内容,则为
undefined


如果
str
也是一个类,我会交换
(?:^\s)
(?:$\s)
的边界,或者在
\s
上匹配,并用空格包装匹配的字符串。

答案在标题中:创建一个捕获组:

str.match(/\sbutton-([^\s]*)/i)[1]
/\sbutton([^\s]+)$/i

然后获取返回的matches数组的第一个元素,该元素将只包含您感兴趣的字符。答案在标题中:只需创建一个捕获组:

/\sbutton([^\s]+)$/i

并获取返回的matches数组的第一个元素,该数组将只包含您感兴趣的字符,这些字符也将匹配
大按钮绿色
,这可能与OP想要的相反。这也将匹配
大按钮绿色
,这可能与OP想要的相反。嗨,Alex,感谢您的快速回复。你的解决方案很好:)嗨,亚历克斯,谢谢你的及时回复。您的解决方案工作正常:)