今天我们看到了一些第五章的例子,一点收获,一份回顾和一份记录。

匹配字符串的问题有很多种,今天讨论了JS代码中的字符串匹配(因为我想编写一个完整的语法来突出手,所以使用js代码作为示例)。

复制代码代码如下所示:
var str1 =我串1啊,带我走


这样的字符串匹配是简单的。











PS:白色截图是在Chrome 34控制台中运行的结果,深灰色是崇高文本的结果。

很容易获得内容,但亲,你有没有想过让JS字符串逃脱。











复制代码代码如下所示:
var str1 =我串1哦,让我出去,我字符串str2 = 2哦,快带我走。


这不是我们想要的结果,所以我们必须处理逃避的问题。
规则是,后面是一个字符,所以我们使用。为了配合它,有这样一个规则 / (。| { ^: / G )













定期的陌生的朋友,一下子从 / / G } * { ^ / (:。| { ^ })* / g的不理解,我简单的说。
())是一个非捕获组,它不将内容抓取保存在内存中。
对于 类似转义字符,成功地消耗了2个字符。
除所有字符外,成功使用1个字符。
所以这个表达式的意思是,首先,如果成功的话。此转义将使用正确的转义,如果不成功,则为{ }。

一个正确的逃生的意思是,例如,AA AA AA ufffaa将匹配通常因为所有这些都是在正常的逃避。
像AA AA AA ufff AA这
因此,匹配结果将不匹配的AA AA AA ufff 在AA。




现在我们得到了一个更强大的正则性,可以有效地匹配JS代码中的字符串。

骚,好像有什么不对的地方。
JS字符串可以折叠起来,像这样:

复制代码代码如下所示:
每个人都是好的。
我是JS;


但是这个字符串和普通规则匹配吗答案是肯定的。
因为,。无法匹配,但可以匹配到{后面,字符后面是,或 (见系统具体的换行符是什么)可以配合{ ^},所以我们在不经意间写的一个有力的表达。

现在最后一个问题是比赛。
我们修改的表达式(。| { ^:} *)(|:。| { ^ ' })* /好。

测试它:

复制代码代码如下所示:
var str1 =我是一个字符串1哦,
让我快我是一个字符串str2 = 2哦,
让我来;






比赛很成功。