手机版

js正则表达式学习笔记的匹配字符串

时间:2021-11-07 来源:互联网 编辑:宝哥软件园 浏览:

今天看了第五章的一些例子,收获了一点。将它们记录为评论并分享。有许多类型的字符串匹配问题。今天,我们将讨论js代码中的字符串匹配。(因为学习后想写一篇语法亮点,所以用js代码作为例子。)复制的代码如下:var str1='我是字符串1,快把我带走',str2='我是字符串2,快把我带走';例如,这样的字符串很容易匹配/'[']*/g

PS:的白色截图是在chrome 34控制台运行的结果,深灰色是崇高文字的结果。获取内容很容易,但是亲爱的,你有没有想过js字符串是允许转义的?

复制的代码如下:var str1='我是字符串1,'快把我带走' \ ' ',str2='我是字符串2,'快把我带走';这不是我们想要的结果,所以我们必须处理逃跑问题。转义规则后面是一个字符,所以我们使用\ \。与之匹配的,还有这样一个正则/'(?\\.|[^'])*'/g

对于经常不熟悉的朋友,突然从/'[']*/g变成/'(?三三六零之后我就看不懂了。|['])*/g,我简单解释一下。(?3360)是非捕获组,也就是说,它不会捕获内容并将其保存在内存中。\ \.用于匹配转义字符,如\' \' \ a。如果匹配成功,它将消耗2个字符。[']匹配除'之外的所有字符。如果匹配成功,将消耗1个字符。这个表达式的意思是,第一次匹配。如果成功,此转义将使用正确的转义,如果失败,请使用[']进行匹配。使用正确的转义意味着,例如,' aa \ \ aa \ ' aa \ ufffaa '将正常匹配,因为这些是正常转义的。例如,“aa \ \ aa”aa \ ufff \ \“其中”将匹配,但“两者都不匹配”。也不会满足['],因此匹配结果将是' aa \ \ aa \ ' aa \ ufff \。

所以现在我们得到了一个很强的正则性,可以有效地匹配js代码中的字符串。骚等。好像有什么不对劲。字符串可以折叠如下:复制代码如下:var str='大家好\我是js ';但是这样的弦能和刚才的规律性匹配吗?答案是肯定的。因为无法与匹配。但可以用[']匹配,后面的字符是\r\n或\ r \ n(取决于系统)可以用[']匹配,所以我们不小心写了一个强表达式。现在还剩最后一个问题,就是‘的匹配’。让我们修改表达式/'(?\\.|[^'])*'|'(?3360 \ \.|['])*/g就可以了。测试一下:复制的代码如下:var str1='我是字符串1,\ '快把我带走' \ ',str2='我是字符串2,\ '快把我带走';

匹配成功。

版权声明:js正则表达式学习笔记的匹配字符串是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。