正则表达式 反斜杠的匹配 2018-11-30

 我来答
黑科技1718
2022-07-16 · TA获得超过5880个赞
知道小有建树答主
回答量:433
采纳率:97%
帮助的人:82.1万
展开全部

在学习正则表达式的过程中,遇到了一直无法正确匹配反斜杠 \ ,初始使用的是下面两种方法:

使用上面两种方法一直无法匹配 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进制数字表示转义字符:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式