今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享。
关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配。(因为我想学完之后写个语法高亮练手,所以用js代码当作例子)
复制代码 代码如下:
var str1 = "我是字符串1哦,快把我取走", str2 = "我是字符串2哦,快把我取走";
比如这样一个字符串,匹配起来很简单 /"[^"]*"/g 即可。
PS: 白色截图是 chrome 34 控制台中运行的结果,深灰色是 sublime text 结果。
很容易就取到内容了,可是亲,你有没有想过,js字符串里允许转义。
复制代码 代码如下:
var str1 = "我是字符串1哦,\"快把我取走\"", str2 = "我是字符串2哦,\"快把我取走\"";
这不是我们想要的结果,所以我们要处理下转义问题。
转义的规则是 \ 后面跟着一个字符,所以我们用 \\. 去匹配它,就有了这样的正则 /"(?:\\.|[^"])*"/g
可能对于正则不熟悉的朋友,一下子从 /"[^"]*"/g 变到 /"(?:\\.|[^"])*"/g 后理解不了,我简单说明下。
(?:) 是非捕获组,就是不会把内容抓取保存到内存里的。
\\. 用于匹配 \" \' \a 之类的转义字符,匹配成功的话消耗2个字符。
[^"] 匹配除了 " 以外的所有字符,匹配成功的话消耗1个字符。
所以这个表达式的意思是,先匹配 \. 这样转义,如果成功会消耗掉正确的转义,如果不成功就用 [^"] 匹配。
消耗掉正确的转义的意思是,比如 "aa\\aa\"aa\ufffaa" 都会被正常匹配,因为这些都在正常的转义。
形如 "aa\\aa\"aa\ufff\\"aa" 这里的 \\" 其中 \\ 会被匹配,而 " 既不满足 \\. 也不满足 [^"]
所以这个匹配结果会是 "aa\\aa\"aa\ufff\\" 后面的 aa" 无法匹配到。
所以现在我们得到了比较强力的正则,可以有效的匹配 js 代码中的字符串了。
骚等,好像还有哪里不对。
js 字符串允许折行,形如这样:
复制代码 代码如下:
var str = "大家好\
我是js";
但是这样的字符串用刚才的正则能匹配么?答案是能。
因为 \ 不能被 \\. 匹配,但是可以被 [^"] 匹配到,\ 后面一个字符是 \r, \n 或 \r\n (具体是什么换行符要看系统了) 都能被 [^"] 匹配到,所以我们无意间写了个强力的表达式。
现在剩下最后一个问题了,就是 ' 的匹配。
我们修改下表达式 /"(?:\\.|[^"])*"|'(?:\\.|[^'])*'/g 就好了。
来测试一下:
复制代码 代码如下:
var str1 = "我是字符串1哦,\
\"快把我取走\"", str2 = '我是字符串2哦,\
\'快把我取走\'';
匹配成功。
相关推荐:
为什么做酒店seo,为什么做酒店 ,ai uehara下载
ChatGPT异常了:人工智能的极限与突破,ai and ethics
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
SEO技巧提升网站流量和排名,助力企业快速崛起,ai080206.
SEO领先-如何借助SEO技术让您的网站脱颖而出,seo是黑客吗
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
优方法-高效生活与工作的秘密武器,钻石营销推广方案
SEO经营:助力企业腾飞的秘密武器,靖边百度关键词排名
文章创作AI:引领智能写作的新时代
SEO是如何推动企业增长的关键力量,深圳罗湖网站建设设计
SEO功能:助力网站流量提升与品牌曝光,天津公司网站建设与维护
自动写文章的AI,提升效率的创作利器
seo网站反链是什么,网站反链怎么做 ,ai插画头像卡通
SEO自己:打造属于你的数字营销利器,微信裂变营销推广软件
seo需要学些什么内容,学seo的基础 ,中国ai公司年收入
seo规范是什么意思,seo包括哪些内容 ,AI智能破解
优化工具:提升工作效率的秘密武器,网站模板的优化策略是什么
SEO部:开启数字化营销新纪元的幕后英雄,株洲营销推广是什么公司
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
SEO好吗?助力网站成功的关键之道,网站优化方案范文怎么写
什么是seo网站推广,什么是seo网站推广 ,ai酷男人
什么是seo运营,什么是seo营销 ,ai绘画沙地
AI翻译工具的革命-ChatGPT等技术让语言互通无碍,淘宝ai写作检测准吗
怎么用AI生成一篇文章?高效创作指南全揭秘!
AI文章概括缩写:让内容高效获取的智能工具,ai 处理文件
seo软件叫什么,seo软件视频教程 ,eps ai 缩略图
AI人工智能文章生成平台,释放创作无限可能
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
SEO选择:如何挑选最合适的SEO优化策略?,wb免费刷粉网站推广
AI智能软件:未来科技的核心力量
seo项目是什么,seo是啥 ,ai ued
什么是蜘蛛弛?揭秘这个SEO优化背后的神秘工具,南沙seo优化排名价格
SEO笔记:如何打造高效的SEO策略提升网站排名,网站优化优质服务方案
seo稿件是什么意思,seo文章写作要求 ,ai写作未来展望和展望
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
zblog站群,zblog怎么样 ,欧卡2ai汽车如何使用
ChatGPT常见问题汇总:解答你关于AI的一切疑惑,松鼠ai智能教适应教育
AI智能工具的无限可能:未来已来,你准备好了吗?
ChatGPT崩了?用户称打开是一片空白,真相竟然如此!,zzz*明星AI换脸
SEO架构:提升网站流量的核心策略,东营南江全平台营销推广
SEO指:如何通过精准优化提高网站流量和转化率,无锡论坛营销推广要多久
如何识别文章是否由AI撰写?揭开智能写作的秘密
seo软文有什么作用,seo文案是什么 ,斐乐Ai测评问题
ChatGPT为什么打不开?背后原因与解决方案,慧ai写作
AI工具,让工作效率翻倍:AI工具教程全面解析
ChatGPT:我目前无法查看或解析附件,您是否遇到过这样的困扰?,ai+燃烧
《“查看更多”背后的秘密:让你的人生更加丰富多彩!》,宁安公司网站建设
ChatGPT破解:人工智能的无限潜力与破解秘笈,意识变ai