Java 正则表达式 转义字符

 

一、这篇文章写的很好,值得看看
两个重点:
1、两次转义
(1)Java 转义(具体规则待学习)
Java 中的普通字符串,需要经过 Java 的转义
(2)正则转义(具体规则待学习)
Java 代码中,正则中的普通字符串,需要经过两次转义,一次 java 转义,一次正则转义
技巧:
在 Java 中写正则时,可以先写出目标表达式,即正常的正则语法,不考虑编程语言。然后,再考虑要生成一个这样的目标表达式,需要经过怎样的 Java 转义,反推出最终的正则字符串(最终写在代码里的)应该怎么写
2、内存中(比较时,是在内存中,而我们写的代码,在磁盘中)

 

 

二、这个问题和高赞答案也很不错,值得反复揣摩
关于为什么 Pattern p = Pattern.compile("\\\n"); 这个会报 redundant character escape 警告,有点难理解,记录一下自己现在的理解
\\\n 先按照 Java 转义语法去转义,前两个 \\ 会转义成一个 \,后两个 \n 会转义成一个换行符,所以正则收到的是一个 \ 加一个换行符,而前面那个 \ 是没有意义的(注意,这时候正则收到的不是 \\n,因为 \n 已经被 Java 转义成了换行符)

 

 

三、记忆一个典型例子

在 Java 中,要用正则匹配一个 \,需要 \\\\

 

四、推荐一个超级好用的在线正则网站

可以随写随测

https://regex101.com/

 

 

 

posted @ 2020-06-19 12:03  stoneBlog  阅读(6320)  评论(0编辑  收藏  举报