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,感谢您的快速回复。你的解决方案很好:)嗨,亚历克斯,谢谢你的及时回复。您的解决方案工作正常:)