正则表达式 反斜杠的匹配 2018-11-30
在学习正则表达式的过程中,遇到了一直无法正确匹配反斜杠 \ ,初始使用的是下面两种方法:
使用上面两种方法一直无法匹配 4\5 中的反斜杠,最终经过查询,发现自己理解错误, 字符串存在转义,正则也存在转义
在字符串中,我们会用一反斜杠加特定的字符来表达一些特定的功能,比如, \n 表示换行, \" 表示双引号等等,而如果要输出反斜杠本身,则用 \\ 如下所示:
可以看到,先是 \" 被转义成了一个双引号 " ,然后是 \\ 转义成 \ ,然后 \n 转义为换行,最后是 \" 转义成 " . (这里不会二次转义,比如 \\n ,只会转义成 \n ,不会再次将 \n 转义成换行)
但当你在字符串前面加一个 r ,表示初始字符串,此时解释器将不对字符串里面的特殊字符进行转义,最外层双引号里面是什么内容,即为什么样的内容,所见即所得
在正则表达式中会使用一些通配符,比如 \w 表示匹配字母,数字或者下划线; \s 表示空白字符; \d 匹配数字
因此,若要实现正则转义,首先要保证模式字符串里面有反斜杠:
因此,正则表达式的解释分为两部分:
实例:匹配类似于 4\8 这样的串
可以分析:
下面注意一个小问题:
用以上的正则表达式来查询 3\5 是查询不到的,比如:
不仅如此, 3/1 , 3/2``3/3 , 3/4 , 3/5 , 3/6 , 3/7 ,都查不到
但是, 3/8 , 3/9 可以查询到,接着 3/10 查询不到
因此可以判断出这个肯定是与8有关的,反斜杠后面的数值不能超过8
经过查询发现,反斜杠加8进制数字表示转义字符: