`
xkd321
  • 浏览: 9806 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

正则表达式的几种使用方法

阅读更多
1 . 使用java自带的类

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class T {

    public static void main(String[] args) {

        String str = "<html>adfad</html><html>chen</html>";
        String regex = "<html>([^<]+)</html>";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
       
        while (matcher.find())  
            System.out.println(matcher.toMatchResult().group(1));

        /*if (matcher.matches())
            System.out.println(matcher.toMatchResult().group(1));*/
    }

}

注意:matcher.find() 能够找出下一个匹配的文本,它查找与该模式匹配的输入序列的下一个子序列。
     matcher.matches()  尝试将整个区域与模式匹配,如果字符串中包含多个匹配文本时,它一个都找不到。

2. 使用 org.apache.oro.text.regex.Perl5Matcher

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.PatternMatcherInput;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;

import au.id.jericho.lib.html.Source;


public class ParseTime {
   
    public static void main(String[] args) throws MalformedURLException, IOException, MalformedPatternException {
       
        String regex = "(\\d{4}[年|-]\\d{1,2}[月|-]\\d{1,2}[日]?)";
        String str = new Source(new URL("file:/home/serverc/test/yw.shtml")).toString();
       
        PatternCompiler compiler = new Perl5Compiler();
        PatternMatcher matcher = new Perl5Matcher();
       
        PatternMatcherInput input = new PatternMatcherInput(str);
        Pattern pattern = compiler.compile(regex);
        if(matcher.contains(input, pattern)){ //将if改成while就会找出所有匹配文本
            System.out.println(matcher.getMatch().group(1));
        }
    }
}

注意:matcher.contains(input, pattern)相当于java中的matcher.find()

3. 匹配<x>..</x> 模式
   String s = "<title>The</title>";
    String regex = "<\\b(\\w+)>\\w*</\\1\\b>";
    System.out.println(s.matches(regex));

4. Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);  //设置对大小写不敏感(即不区分大小写)
    Pattern p = Pattern.compile(regex,Pattern); //区分大小写

5. 例子
  /** 
        *   该方法是判断一个字符串是不是一个合法的E-Mail地址 
        *   使用了正则表达式的方法 
        *   如果符合E-mail的格式,则返回   true,   否则返回   false   ; 
        *   E-mail   正确的格式是     XXX@XXX.XXX(.XXX)   ; 
        *   @param   checkString   要判断的是否符合E-mail   格式的字符串 
        *   @return   返回判断的结果,如果符合,返回   true,   否则返回   false   ; 
        */ 
      public   static   boolean   isEmail(String   checkString){ 
      //String   regString="([a-zA-Z_0-9]+)@([a-zA-Z0-9]+).*(\\.com|\\.cn|\\.net)"; 
      String   regString="([a-zA-Z_0-9]+)@([a-zA-Z0-9]+)\\.([a-zA-Z]+)"; 
      //String   regString="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.[a-zA-Z]+"; 
      Pattern   pattern=Pattern.compile(regString); 
      Matcher   matcher=pattern.matcher(checkString); 
      return   matcher.find(); 
      } 
      /** 
        *   该方法是判断一个字符串是不是一个合法的URL地址 
        *   使用了正则表达式的方法 
        *   如果符合URL的格式,则返回   true,   否则返回   false   ; 
        *   URL   正确的格式是     http://XXX.XXX(XXX/XXX%&=XXX)   ; 
        *   @param   checkString   要判断的是否符合   URL   格式的字符串 
        *   @return   返回判断的结果,如果符合,返回   true,   否则返回   false   ; 
        */ 
      public   static   boolean   isURL(String   checkString){ 
      String   regString="http://([\\w-]+\\.)+[\\w-]+(/[\\w-   ./?%&=]*)?"; 
      Pattern   pattern=Pattern.compile(regString); 
      Matcher   matcher=pattern.matcher(checkString); 
      return   matcher.find(); 
      }
分享到:
评论

相关推荐

    正则表达式在数据库查询中的应用

    虽然正则表达式提供了强大的查询能力,但在实际应用中也需要注意以下几点: - **性能考量**:某些数据库系统中,使用正则表达式可能会导致性能下降,特别是在大型数据集上。因此,在设计查询时应考虑性能影响。 - **...

    Delphi2010正则表达式插件

    在编程世界中,正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助开发者高效地进行字符串的匹配、查找、替换等操作。在Delphi 2010这个经典的集成开发环境中,有一款专门针对正则表达式的插件,...

    日期正则表达式(很实用)

    本文将详细介绍几种常用的日期正则表达式及其原理。 #### 二、简单日期格式验证 ##### 1. YYYY/MM/DD 格式的日期验证 最基础的日期格式是`YYYY/MM/DD`,这种格式下日期的正则表达式为: ``` ^\d{4}(\-|\/|\.)\d{...

    正则表达式不包涵特殊字符(除了 指定字符 以外)

    正则表达式是一种强大的文本处理工具,能够帮助我们在文本数据中执行复杂的查找、替换和提取操作。其主要应用领域包括文本搜索、数据验证和数据清洗等。正则表达式的语法由一系列用于描述字符串模式的字符和元字符...

    qt正则表达式测试工具

    正则表达式是一种特殊的文本字符串,用于描述复杂或重复的文本模式。它们在搜索、替换、数据提取等任务中非常有用。在Qt中,QRegExp类提供了对正则表达式的支持,包括构造、匹配、替换等功能。 1. **QRegExp构造**...

    只验证数字和字母的正则表达式

    该正则表达式 `/^([A-Za-z0-9])+$/` 可以被细分为几个关键部分进行解读: 1. **`/`**:正则表达式的开始与结束符号。 2. **`^`**:表示匹配字符串的起始位置。 3. **`([A-Za-z0-9])`**: - **`[A-Za-z]`**:表示...

    正则表达式.doc 正则表达式

    总的来说,正则表达式是程序员处理文本的强大工具,理解并掌握其语法和使用方法对于提高文本处理能力至关重要。通过不断实践和学习,你可以利用正则表达式解决各种文本处理问题,无论是在Java还是其他支持正则表达式...

    详解Java判断是否是整数,小数或实数的正则表达式

    在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...

    正则表达式判断密码强度

    正则表达式(Regular Expression)是一种强大的工具,用于在字符串中匹配特定模式,它在这里被用来判断用户设定的密码是否符合一定的强度标准。以下是对这个话题的详细解释。 首先,密码强度通常涉及到以下几个方面...

    深入浅出正则表达式,正则表达式详细介绍

    正则表达式(Regular Expression),简称regex或regexp,是一种用于描述文本模式的强大工具。它可以帮助我们在文本中进行精确匹配、查找以及替换操作。正则表达式的概念最早可以追溯到20世纪50年代,但真正流行起来...

    正则表达式学习心得 v1.0

    本文旨在分享作者在学习正则表达式过程中的心得体验,并重点介绍了几种常见编程语言(Python、C#、PHP)及文本编辑器(Notepad++)中正则表达式的使用技巧。此外,还特别对比了不同语言之间正则表达式的异同之处。 ...

    正则表达式验证金额格式

    在IT行业中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。在本场景中,我们关注的是如何使用正则表达式来验证金额格式。金额格式通常要求精确到小数点后两位,并且可能...

    万能日期正则表达式 (适用于各种日期样式)绝对经典

    为了构建这个“万能”的日期正则表达式,我们需要关注以下几个关键部分: ##### 1. 年份 (yyyy 或 yy) - **四位数年份**:`(\d{4})`,表示任何四位数字。 - **两位数年份**:`(\d{2})`,表示任何两位数字。 ##### ...

    正则表达式三种思维逻辑.pdf

    另一种是使用字符组或多选分支结构,如方括号([])、竖线(|)等,来列举元素可能出现的几种形态。例如,匹配双引号字符串时,双引号是必须出现的元素,而双引号内的内容则是可能出现的元素,可以使用星号(*)来表示这...

    正则表达式匹配调试工具

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和查找、替换等操作。在编程和数据处理领域,正则表达式是不可或缺的一部分,尤其在处理大量文本数据时,它的灵活性和效率尤为突出。为了更好地理解...

    linux 正则表达式总结

    正则表达式的第一个实用应用程序是 Unix 中的 qed 编辑器,从那时起,正则表达式经过几个时期的发展,现在的标准已经被 ISO 批准和被 Open Group 组织认定。 2. 语言?NO! 正则表达式并非一门专用语言,而是一种...

    利用正则表达式巧妙解析度分秒格式字符串

    在这个`ParseDMS`方法中,我们首先创建了一个正则表达式实例,然后使用`Match`方法尝试找到匹配的度分秒字符串。如果匹配成功,我们就提取出度、分和秒,将它们转换为浮点数并计算总度数。如果输入的字符串格式不...

Global site tag (gtag.js) - Google Analytics