
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中,为什么中括号需要双\转义,而引号只需要单\转义呢?一直不明白为什么,请大神解答!
展开
2个回答
展开全部
在java里面反斜杆是转义的意思,在正则表达式里面反斜杆也是转义的意思。java里面2个反斜杆,实际输出的是一个反斜杆。你那个正则表达式实际的验证规则是 \[(.*)\] ".*"。由于[]中括号是正则表达式里面的关键字,所以要转义。所以你最终匹配的样式是[(.*)] ".*"这个样子的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询