易语言正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了易语言正则表达式相关的知识,希望对你有一定的参考价值。

<span class=\"emoji emoji1f498\"></span>小明 <span class=\"emoji emoji1f61c\"></span> 怎么用正则表达式把“”小明“”给替换出来

.版本 2

.支持库 RegEx

.支持库 spec


.局部变量 正则, 正则表达式

.局部变量 搜索, 搜索结果, , "0"

.局部变量 文本, 文本型

#常量1  就是被搜索的文本 <span class=\\"emoji emoji1f498\\"></span>小明 <span class=\\"emoji emoji1f61c\\"></span>

文本 = #常量1

正则.创建 (“</span>(.*?) <span class=”, )

搜索 = 正则.搜索全部 (文本)

调试输出 (搜索 [1].取子匹配文本 (文本, 1, ))

参考技术A </span>([\s\S]*?)<span
就可以了

那些年我们一起走过正则表达式的坑

一、为什么需要学习正则表达式

正则表达式是一种应用广,灵活度高的一种查找方式,目前在爬虫爬取,对特定的内容的抓包,登录的验证等多个方面都用得上正则表达式,但是由于其实一种灵活的查找,所以我们要付出的代价就是相应使用的复杂,复杂度表现在语法上的不便记忆和应用层面上的易出错,今天我们就来谈谈正则表达式在应用层面上常出现的错误

二、正则表达式常见坑

1、零宽断言理解错误

零宽断言匹配的相当于是一个位置,不是一个具体的内容

示例:

将字符串str="test.com"的.前面的替换为1,也就是str="1.com"

错误示范:

    var str="test.com";
    console.log(str);
    var reg=/(?=\.)*/gi;
    //var re=new RegExp(reg);
    str=str.replace(reg,"1");
    console.log(str);

运行结果是:str="1t1e1s1t1.1c1o1m",我想此时你的心情一定是这样的

技术分享

 从这个运行结果来看,就是在原来的字符串中的每个字符前面插入1,但是这个并不是我们所要求的,造成这样的原因主要是位置弄错了,现在把代码改为如下所示:

 

var str="test.com";
console.log(str);
var reg=/\w+(?=\.)/gi;
//var re=new RegExp(reg);
str=str.replace(reg,"1");
console.log(str);

 

这样运行一下就得到了我们所要求的,这个位置我们其实是要求:匹配类型+元字符+零宽断言,错误示范中是零宽断言+元字符这样的一种组合,根本不符合语法的要求,所以错误

 2、后向调用理解错误

示例

匹配字符串str="455 33"

错误示范

var str="455 33";
var test=/\b([1-4]\d{1,2})\s?\1\b/gi;
console.log(test.test(str));

这个错误主要的原因是对后向调用的理解有误,后向调用第n次使用时匹配第一次的完全相同的内容,但是不意味着在这里第二次引用前面分组的正则表达式,所以这里只匹配“455 455”这样的字符串

 技术分享

 

以上是关于易语言正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

易语言正则表达式中,如何匹配多个关键词,例如我要在“你好我是地球人”中匹配“好”和“地”

易语言怎么获取网页json内容

20分钟学会正则表达式

js 正则表达式

C语言怎么用正则表达式

java里正则表达式是啥意思啊