JAVA中正则双斜线和单斜线转义的问题

@Testpublicvoidasd(){Stringqq="[2018/8/139:48:36]\"rizhi\"";Stringregex="\\[(.*)\\]\"... @Test public void asd() { String qq = "[2018/8/13 9:48:36] \"rizhi\""; String regex = "\\[(.*)\\] \".*\""; boolean flag = qq.matches(regex); if(flag) System.out.println("...is ok"); else System.out.println("... 不合法"); }在JAVA中,为什么中括号需要双\转义,而引号只需要单\转义呢?一直不明白为什么,请大神解答! 展开
 我来答
午夜屠猪男9527
2018-09-13 · TA获得超过173个赞
知道小有建树答主
回答量:150
采纳率:66%
帮助的人:40.4万
展开全部
在java里面反斜杆是转义的意思,在正则表达式里面反斜杆也是转义的意思。java里面2个反斜杆,实际输出的是一个反斜杆。你那个正则表达式实际的验证规则是 \[(.*)\] ".*"。由于[]中括号是正则表达式里面的关键字,所以要转义。所以你最终匹配的样式是[(.*)] ".*"这个样子的。
阳光的雷咩咩
2018-09-13 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7797万
展开全部
正则(语言无关)中括号是特殊字符(代表字符范围),需要转义
所有特殊字符是:* . ? + $ ^ [ ] ( ) { } | \ /
引号是普通字符,所以不需要转义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式