在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());
}

打印:

\

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

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

java正则表达式——总结的更多相关文章

  1. java正则表达式

    java正则表达式 1.Java正则表达式的语法与示例:  http://baike.xsoftlab.net/view/207.html 2.Java 正则表达式:  http://www.runo ...

  2. Java正则表达式入门——转自RUNOOB.COM

    Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...

  3. Java 正则表达式详解

    Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...

  4. 【转】详解Java正则表达式语法

    (转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...

  5. java正则表达式【大全】

    [正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...

  6. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  7. JAVA正则表达式:Pattern类与Matcher类详解

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  8. Java 正则表达式[转载]

    PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...

  9. Java正则表达式的应用

    在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...

  10. Java正则表达式实用教程

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.java.util.regex包主要包括以下三个类:Pattern.Matcher和PatternSynta ...

随机推荐

  1. Paypal、Stripe、Braintree,跨境电商金流第三方支付该用哪家?

    在台湾做跨境电子商务生意,电商网站的金流肯定是一个最大的麻烦,Paypal或是Stripe和Braintree则是国际上大家最常用的金流整合第三方支付服务商.这些金流服务大幅简化网站付费过程,都让消费 ...

  2. python — 索引与pymysql模块

    1. 索引 1.1 索引原理 1.什么是索引 ?-- 目录 索引就是建立起的一个在存储表阶段就有的一个存储结构,能在查询的时候加速. 2.索引的重要性: 读写比例 为 10:1,所有读(查询)的速度就 ...

  3. System函数的使用说明

    #inlcude<stdlib.h> int system(const char* command) 功能:在已经运行的程序中调用另一个外部程序 参数:外部可执行程序的名字 返回值:不同系 ...

  4. 关于mq的思考

    解耦场景 spark 发告警,同过kafka来解耦 削峰场景 日志采集生产环境几百台,当后续数量持续增加时,如果不加消息队列或者内存队列,可能把数据库打死 一个中间件: 为什么用 ->解决什么问 ...

  5. JS 03事件

    <script type="text/javascript"> function getUserInput() { //获取用户输入的内容 var val = docu ...

  6. s5p6818裸机程序的设计:以GPIO为例

    为了调试方便,首先确保对于硬件的控制没有问题. Makefile # Makefile edited by Schips # 2019-06-21 schips@dingtalk.com # 文件类型 ...

  7. UOJ208 UOIP十合一(提交答案)

    首先对每张图都去掉自环. 1:给出的就是DAG.答案即为2m. 2.5:显然每个SCC之间互相独立.这两个点都满足SCC中的点很少.于是对每个SCC暴力枚举边集判环,而SCC之间的边显然选不选没有影响 ...

  8. 从业务流程角度:分析TMS系统各个功能模块

    TMS的主要功能是协调承运商.运营商.货主三种角色人员分工合作共同完成运输任务,并实现对运输任务的跟踪管理.本文将按照业务流程顺序对TMS系统各个功能模块进行分析说明. 一.业务描述 新零售的兴起及& ...

  9. css line-height & 图片底部间隙的处理

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 看大牛张鑫旭的视屏可能会理解的更深一些,点击这里 . line-height 的学习 line-heigh ...

  10. Linux自动运维工具Ansible的使用

    Linux自动运维工具Ansible的使用 我们熟悉这个工具后, 可以很轻松的安装k8s. 一.介绍 ansible - run a task on a target host(s) Ansible是 ...