Java的正则表达式

Java正则表达式:定义了字符串的模式;可以用来搜索、编辑、或处理文本;

指定为字符串的正则表达式必须首先被编译为此类的实例。然后将得到的模式用于创建Matcher对象,依照正则表达式,该对象可以与任意字符序列匹配,执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式

因此,典型的调用顺序是:

Pattern p = Pattern.compile("a*b");

Matcher m = p.matcher("aaaaaaabccccc");

boolean b = m.matches();

如下例子中:

boolean isMatch = Pattern.matches(pattern,content);仅在使用一次正则表达式时,可以方便使用matches方法。

Java.util.regex包主要包括以下三个类:

  1、Pattern类:pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法,要创建一个Pattern对象,必须首先调用其公共静态编译方法,返回一个Pattern对象,该方法接受一个正则表达式作为它的第一个参数。

package cuiyuee;
import java.util.regex.*;

public class PatternTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String content = "I am noob from runoob.com.";

        String pattern = ".*runoob.*";

        boolean isMatch = Pattern.matches(pattern,content);
        System.out.println("字符串中是否包含了 ‘runoob‘ 子字符串?"+ isMatch);

    }

}

  2、Matcher类:Matcher对象是对输入字符串进行解释和匹配操作的引擎,与Pattern类一样,Matcher也没有公共构造方法,需要调用Pattern对象的matcher方法来获得一个Matcher对象。

  Matcher类的方法:

    索引方法:提供了有用的索引值,精确表明输入字符串中在哪能找到匹配。

      public int start():返回以前匹配的初始索引。

      public int start(int group):返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引。

      public int end(int group):返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量。

    研究方法:用来检查输入字符串并返回一个布尔值,表示是否找到该模式。

      public boolean lookingAt():尝试将从区域开头开始的输入序列与该模式匹配。

      public boolean find():尝试查找与该模式匹配的输入序列的下一个子序列。

      public boolean find(int start):重置此匹配器,尝试查找匹配该模式,从指定索引开始的输入序列的下一个子序列。

      public boolean matches():尝试将整个区域与模式匹配。

    替换方法:替换输入字符串里文本的方法。

      public Matcher appednReplacement(StringBuffer sb,String replacement):实现非终端添加和替换步骤。

      public StringBuffer appendTail(StringBuffer sb):实现终端添加和替换步骤

      public String replaceAll(String replacement):替换模式与给定替换字符串相匹配的输入序列的每个字序列。

      public String replaceFirst(String replacement):替换模式与给定替换字符串匹配的输入序列的第一个子序列

      public static String quoteReplacement(String s):返回指定字符串的字面替换字符串。这个方法返回一个字符串,就像传递给Matcher类的appendReplacement 方法一个字面字符串一样工作。

   3、PatternSyntaxException类

      PatternSyntaxException是一个非强制异常类,它指示一个正则表达式模式中的语法错误。

      有以下方法帮助我们查看发生了什么错误。

    public String getDescription():获取错误的描述。

    public int getIndex():获取错误的索引。

    public String getPattern():获取错误的正则表达式模式。

    public String getMessage():返回多行字符串,包含语法错误及其索引的描述,错误的正则表达式模式和模式中错误索引的可视化指示。

时间: 2024-10-29 20:26:31

Java的正则表达式的相关文章

java常用正则表达式

java常用正则表达式 1.^\d+$ //匹配非负整数(正整数 + 0) 2.^[0-9]*[1-9][0-9]*$ //匹配正整数 3.^((-\d+) ?(0+))$ //匹配非正整数(负整数 + 0) 4.^-[0-9]*[1-9][0-9]*$ //匹配负整数 5.^-?\d+$ //匹配整数 6.^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0) 7.^(([0-9]+\.[0-9]*[1-9][0-9]*) ?([0-9]*[1-9][0-9]*\.[0-9]+)

Java中用正则表达式找出数字

Java中用正则表达式找出数字 1.题目    String str = "fjd789klsd908434jk#$$%%^38488545",从中找出78990843438488545,请找到解决办法 2.实现源码 /** * */ package com.you.model; /** * @author YouHaidong * */ public class FindNumber { /** * 字符串str */ public static String str = "

java中 正则表达式的使用

推荐使用第一种 第一种: //对接收的文件名的合法性进行验证 String fileName="127.0.0.1_01_20140428165022174.jpg"; String regEx = "\\b.+_\\d+_\\d{17}\\b"; //正则表达式 Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(fileName); if(!m.find()){ SysLog.logger.erro

Java中正则表达式的使用(常用的方法)

这两天回想了一下正则表达式的使用,顺便就总结了一下java的javascript中使用正则表达式的用法,需要看javascript中使用正则的朋友可以看我的另一篇总结,下面我就简单的介绍一下java中正则表达式的使用.方便自己以后查询使用,也希望能帮助到大家.===欢迎指正=== 在JDK1.3及之前的JDK版本中并没有包含正则表达式的类,如果要在Java中使用正则表达式必须使用第三方提供的正则表达式库.从JDK1.4开始提供了支持正则表达式API,它们位于java.util.regex包中.

Java对正则表达式的支持(一)

Java对正则表达式的支持主要体现在String.Pattern.Matcher和Scanner类. 1.Pattern.Matcher 先看一个Pattern和Matcher类使用正则表达式的例子. public class PatternTest { public static void main(String [ ] args) { String testString = "abcabcabcdefabc"; String [] regexs = new String []{&q

Java使用正则表达式取网页中的一段内容(以取Js方法为例)

关于正则表达式: 表1.常用的元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 表2.常用的限定符 代码/语法 说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 表3.常用的反义代码 代码/语法 说明 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S

1000行代码徒手写正则表达式引擎【1】--JAVA中正则表达式的使用

简介: 本文是系列博客的第一篇,主要讲解和分析正则表达式规则以及JAVA中原生正则表达式引擎的使用.在后续的文章中会涉及基于NFA的正则表达式引擎内部的工作原理,并在此基础上用1000行左右的JAVA代码,实现一个支持常用功能的正则表达式引擎.它支持贪婪匹配和懒惰匹配:支持零宽度字符(如"\b", "\B"):支持常用字符集(如"\d", "\s"等):支持自定义字符集("[a-f]","[^b-

Java常用正则表达式验证工具类RegexUtils.java

原文:Java常用正则表达式验证工具类RegexUtils.java 源代码下载地址:http://www.zuidaima.com/share/1550463379442688.htm Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合. 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. 身份证 10. 域名 11. IP .... 常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证

Java 常用正则表达式搜集ing

MAC地址: ^[a-fA-F0-9]{2}+:[a-fA-F0-9]{2}+:[a-fA-F0-9]{2}+:[a-fA-F0-9]{2}+:[a-fA-F0-9]{2}+:[a-fA-F0-9]{2}$ IPv4地址: \\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25

js和java中正则表达式的易混淆点

js中正则表达式的使用 对表单中的值进行正则表达式匹配一般有两种方法: var reg = new RegExp(regStr); reg.test(value); 如下: var reg = new RegExp("\\d{3}"); reg.test("abc123def"); 结果:true 注:new RegExp中传的是正则表达式的字符串,\需要用\转义. str.match(regex);      如"abc123def".matc