黑马程序员技术交流社区

标题: 正则表达式问题 [打印本页]

作者: asvsass    时间: 2014-2-23 18:01
标题: 正则表达式问题
SplitDemo(c:\\abc\\dd\\a.txt,“\\\\”)为什么要用4个反斜杠切 不是3个就好了吗
作者: KeepCoding    时间: 2014-2-23 18:09
转义字符只能转紧跟着后面的那个字符,每一个你想转的\前面都得多加上一个\
两个的话就得是\\\\
作者: asvsass    时间: 2014-2-23 18:19
哦 原来是分开转义。。。
作者: 赵永生    时间: 2014-2-23 18:25
\\ 表示一个\,\\\\表示\\ C:\\ 不是2个么
作者: dongdong5982    时间: 2014-2-23 18:26
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. public class Test {
  4.         public static void main(String[] args) {
  5.                 // 认识 \s \w \d  \
  6.        // 这个程序结果全为true
  7.                 p(" \n\r\t".matches("\\s{4}"));
  8.                 p(" ".matches("\\s"));
  9.                 p("a_8".matches("\\w{3}"));
  10.        //[a-z]{1,3}表示a-z中有1个到3个
  11.        //\\d+表示数字1次或多次
  12.        //[&^#%]+ 这4个中出现1次或多次
  13.                 p("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));
  14.        //在java字符串中,2个反斜线代表1个反斜线,如何用正则表示式匹配一个反斜线?
  15.                 p("\\".matches("\\\\"));
  16.         }
  17.         public static void p(Object o) {
  18.                 System.out.println(o);
  19.         }
  20. }
复制代码

    上面是我原来笔记中的一个例子。在java字符串中,2个反斜线代表1个反斜线,如何用正则表示式匹配一个反斜线?
    p("\\".matches("\\\\"));后面那个是正则表达式,正则表达式本身要匹配一个反斜线的话,需要2个反斜线,然后要用字符串把这个正则表示式表现出来的时候,每一个反斜线都要用两个反斜线替代,所以要有4个反斜线。所以要在正则表达式中匹配1个反斜线的话,要写4个









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2