在JDK 1.4中,Java增加了对正则表达式的支持。

java与正则相关的工具主要在java.util.regex包中;此包中主要有两个类:PatternMatcher


Pattern 

模式类,正则表达式的编译表示形式。

更多有关Pattern类的内容请看java之Pattern类详解


Matcher 

匹配器类,通过解释 Patterncharacter sequence 执行匹配操作的引擎。

更多有关Pattern类的内容请看java之Matcher类详解


正则规则

详见java正则规则表


特殊字符

对于一般字符:

        System.out.println(Pattern.matches("a", "a"));// true

可以看出是没有问题的。

但是对于有些字符,比如:

        System.out.println(Pattern.matches("{", "{"));

会报错:

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition

Illegal repetition:非法的重复。

因此必须对特殊字符做处理,加\\转义即可。

      System.out.println(Pattern.matches("\\{", "{"));// true

对于点号:

        System.out.println(Pattern.matches(".", "."));// true
System.out.println(Pattern.matches(".", "a"));// true

点号能匹配任何字符,所以若特定要匹配点号,应对点号转义。如下:

        System.out.println(Pattern.matches("\\.", "."));// true
System.out.println(Pattern.matches("\\.", "a"));// false

对于斜杠'\':

一个斜杠时,String s = "\";这种形式在java中是不合法的;

有语法错误:“String literal is not properly closed by a double-quote”。字符串字面值由双引号关闭不正确。因为斜杠将右引号转义了,所以字符串未正确结束。

需要再加一斜杠,String s = "\\";java中的'\'需要用'\\'来表示。

        String s = "\\";
System.out.println(s);// \

匹配斜杠:

        System.out.println(Pattern.matches("\\", "\\"));

报错:

Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1

所以需要转义:

        Matcher m = Pattern.compile("\\\\").matcher("\\");
while (m.find()) {
System.out.println(m.group());
}

打印:

\

需要做转义处理的字符有:

{ } ( ) [ ] $ * + | . ? \\ ^

最新文章

  1. DataTable ajax分页+删除+查询+修改
  2. svm训练显示信息说明
  3. C++ Primer 学习笔记_46_STL实践与分析(20)--容器特有的算法
  4. Interesting Punch-Bowl(优先队列)
  5. XML 序列化与PULL解析
  6. HTML友情链接代码
  7. 201521123091 《Java程序设计》第6周学习总结
  8. 201521123114《Java程序设计》第9周学习总结
  9. C#设计模式之七适配器模式(Adapter)【结构型】
  10. 程序员的视角:java GC
  11. java 各数据类型之间的转换
  12. windows 7 命令修改IP地址
  13. 【webpack】-- 入门与解析
  14. ES5-ES6-ES7_let关键字声明变量
  15. 双倍浮向(双倍边距)(只有IE6出现)
  16. {python--GIL锁}一 介绍 二 GIL介绍 三 GIL与Lock 四 GIL与多线程 五 多线程性能测试
  17. UGUI的text赋值问题-速度
  18. Java中classpath配置
  19. Android Studio和SDK下载、安装和环境变量配置
  20. Java反射学习一

热门文章

  1. java中内存泄露有几种?如何分析泄露原因
  2. 【C++札记】引用
  3. API参考
  4. 剑指offer52:正则表达式匹配
  5. js时间戳与日期格式之间相互转换
  6. python 手机App数据抓取实战一
  7. 0160 十分钟看懂时序数据库(I)-存储
  8. C# DataContractJsonSerializer
  9. (六)easyUI之对话框窗口
  10. static的用法详解