正则表达式

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值