我想抓住包含“厘米”的所有字词,例如: 10.50centimeters 从这句话“本产品有10.50厘米长.. ”。
我的职能:
function findMatchingWords(t, s) {
var re = new RegExp("\\w*"+s+"\\w*", "g");
return t.match(re);
}
findMatchingWords('This product have 10.50centimeters length..','centimeters');
但仅返回“ 50centimeters ”。没有得到点之前的数字。
对此有任何帮助吗?
答案 0 :(得分:3)
没有在点之前得到数字。
\w
与点匹配,它等同于[A-Za-z0-9_]
。 [\w.]
会(或[A-Za-z0-9_.]
)。
var re = new RegExp("[\\w.]*"+s+"\\w*", "g");
直播示例:
function findMatchingWords(t, s) {
var re = new RegExp("[\\w.]*"+s+"\\w*", "g");
return t.match(re);
}
console.log(findMatchingWords('This product have 10.50centimeters length..','centimeters'));

附注:在将s
构造函数提供给RegExp
之前,您希望在sklearn
中转义具有特殊含义的字符。 This question's answers具有执行此操作的功能。