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 []{"abc+","(abc)+","(abc){2,}"};

        for(String regex:regexs){
            Pattern p = Pattern.compile(regex);
            Matcher m = p.matcher(testString);

            System.out.println("test regex: " + regex);
            while(m.find()){
                System.out.println("match " + m.group() + " at position " + m.start() + "-" + (m.end() -1));
            }
        }
    }

}

  运行的结果为:

test regex: abc+
match abc at position 0-2
match abc at position 3-5
match abc at position 6-8
match abc at position 12-14
test regex: (abc)+
match abcabcabc at position 0-8
match abc at position 12-14
test regex: (abc){2,}
match abcabcabc at position 0-8

  先对几个正则表达式的含义进行解释:

  abc+:匹配abc或者abcc或者abccc等。

  (abc)+:根据贪婪原则,匹配1次或者多次连续的abc,匹配最长的字符串。

  (abc){2,}:abc至少出现2次,匹配abcabc或者abcabcabc等。

  

时间: 2025-01-03 17:10:08

Java对正则表达式的支持(一)的相关文章

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

正则表达式的主要用途: a.在目标字符串中找出匹配正则表达式的部分 b.校验目标字符串是否符合正则表达式,例如校验邮箱地址 c.在目标字符串中替换符合正则表达式的部分为其他的字符串 Scanner类是JDK 1.5中引入的扫描类,Scanner类的构造函数可以接受一个Readable对象,具体说来可以是File.String.InputStream等. 下面是一个Scanner类配合正则表达式使用的例子,目的是找出以S.s.c.t开头的单词. package RegexTest; import

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

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中正则表达式基本用法

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 大家都知道,正则表达式是一种可以

java之正则表达式

不使用正则表达式: import java.util.Scanner; public class RagexDemo01 {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         String str = scanner.next();         boolean flag = true;         char[] c = str.toC

java中正则表达式基本用法(转)

https://www.cnblogs.com/xhj123/p/6032683.html 正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.

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

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