Javascript String.match()在正则表达式后带有不确定字符
如果我在Javascript中有如下字符串:Javascript String.match()在正则表达式后带有不确定字符,javascript,regex,Javascript,Regex,如果我在Javascript中有如下字符串: var html = '"<div class="info" id="infobox">Average Speed: 83kph<br/><br/>Max Speed: 95kph<br/><br/>Event Started At: 42.929126, -78.834093<br/><br/>Event Last Recorded At: 42.920754, -
var html = '"<div class="info" id="infobox">Average Speed: 83kph<br/><br/>Max Speed: 95kph<br/><br/>Event Started At: 42.929126, -78.834093<br/><br/>Event Last Recorded At: 42.920754, -78.843596<br/><br/>Event Duration: 0H, 0M, 56S <br/><br/>";
/: (.*?)</
html.split(/: (.*?)</).filter(function(x, i) { return i % 2 ; });
// ["83kph", "95kph", "42.929126, -78.834093", "42.920754, -78.843596", "0H, 0M, 56S "]
var html='“平均速度:83kph
最大速度:95kph
事件开始于:42.929126,-78.834093
上次记录的事件发生于:42.920754,-78.843596
事件持续时间:0小时,0米,56秒
;
我想将所有子字符串存储在“:”之后,如何使用
match()
方法?我想我想要一些正则表达式为“:%indeterminateAmountofCharacters的东西听起来你想要这样的模式:
var html = '"<div class="info" id="infobox">Average Speed: 83kph<br/><br/>Max Speed: 95kph<br/><br/>Event Started At: 42.929126, -78.834093<br/><br/>Event Last Recorded At: 42.920754, -78.843596<br/><br/>Event Duration: 0H, 0M, 56S <br/><br/>";
/: (.*?)</
html.split(/: (.*?)</).filter(function(x, i) { return i % 2 ; });
// ["83kph", "95kph", "42.929126, -78.834093", "42.920754, -78.843596", "0H, 0M, 56S "]
并且添加全局标志(g
)将为您提供所有匹配项,但不会按组分开:
html.match(/: (.*?)</g)
// [": 83kph<", ": 95kph<", ": 42.929126, -78.834093<", ": 42.920754, -78.843596<", ": 0H, 0M, 56S <"]
或在循环中使用:
var re = /: (.*?)</g,
results = [],
match;
while (match = re.exec(html)) {
results.push(match[1]);
}
console.log(results);
// ["83kph", "95kph", "42.929126, -78.834093", "42.920754, -78.843596", "0H, 0M, 56S "]
var re=/:(.*)您可以执行全局“搜索而不替换”。不过,您必须半手动执行子组捕获
var matches = [];
html.replace(/: (.*?)</g, function () {
matches.push(arguments[1]);
});
var匹配=[];
html.replace(/:(.*)edit:p.s.w.g击败我
这应该起作用:
:\s(.*?)<
:\s(.*)<