formaterRateData: function (data) {
if (!data) {
return [];
}
var arr = [];
try {
data = data.replace(/<.*?>/gi, "");
var rateArr = data.split(/\r|\n/g);
for (var i = 0; i < rateArr.length; i++) {
//过滤掉数组中空元素
if (
rateArr[i] == "" ||
typeof rateArr[i] == "undefined" ||
rateArr[i] == null
) {
continue;
}
arr.push(rateArr[i].split(/:|:/));
}
} catch (error) {
return [];
}
return arr;
}
表达式 .* 就是单个字符匹配任意次,即贪婪匹配。 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.
\s 匹配任何空白非打印字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任何非空白非打印字符。等价于 [^ \f\n\r\t\v]。
*限定符是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
比如:<H1>Chapter 1 - 介绍正则表达式</H1>
使用/<.*>/匹配的结果为:H1>Chapter 1 - 介绍正则表达式</H1。
使用/<.*?>/匹配结果为:H1。
正则:
. 是任意字符 可以匹配任何单个字符,
例子:正则表达式r.t 可以匹配这些字符串:rat、rut、r t,但是不匹配root。
.*? 表示匹配任意字符到下一个符合条件的字符
例子:正则表达式a.*?xxx 可以匹配 abxxx axxxxx abbbbbxxx
扩展资料:
* 匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。 ? 匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。.*是指任何字符0个或多个,.?是指任何字符0个或1个.
.*具有贪婪的性质,首先匹配到不能匹配为止,根据后面的正则表达式,会进行回溯。.*?则相反,一个匹配以后,就往下进行,所以不会进行回溯,具有最小匹配的性质。
?表示非贪婪模式,即为匹配最近字符 如果不加?就是贪婪模式a.*bc 可以匹配 abcbcbc
正则表达式
最新推荐文章于 2024-05-20 10:35:51 发布