regex返回匹配数组

regex return array of matches

本文关键字:数组 返回 regex      更新时间:2023-09-26

这是我的测试字符串

'Please disregard this.'r'n'r'n**Jonathan O''Donnell: Estimated Time: 10 Hours.**'r'n'r'n**Jonathan O''Donnell: 2 Hours May 15, 2015**'r'n**Chris Kuhar: 4 Hours May 30, 2015**'

到目前为止,这是我的Javascript正则表达式。

/('*'*.*?'*'*)/

它与第一次出现的完全匹配,但我想要所有出现的。

 /('*'*.*?'*'*)/g
                ^^

g修饰符用于执行全局匹配(查找所有匹配,而不是,而不是在第一个匹配后停止(。

如果您愿意,您可以使用.exec存储更详细的列表,因此,您还可以在每个匹配中进行搜索。

var str = 'Please disregard this.'r'n'r'n**Jonathan O''Donnell: Estimated Time: 10 Hours.**'r'n'r'n**Jonathan O''Donnell: 2 Hours May 15, 2015**'r'n**Chris Kuhar: 4 Hours May 30, 2015**';
var reg = /'*'*([^:]+)':'s*(.+)'*'*/g, fields = [], item;
while(item = reg.exec(str)){
   fields.push({name:item[1], time:item[2]})
}
console.log(fields)
<script src="http://www.wzvang.com/snippet/ignore_this_file.js"></script>

您可以在正则表达式中使用/g,该表达式将进行全局搜索。

g修饰符用于执行全局匹配(查找所有匹配,而不是在第一个匹配后停止(。

因此,最终表达式变为/('*'*.*?'*'*)/g

使用string.match(/your-regex/g(;参考