`
xkd321
  • 浏览: 9582 次
  • 性别: 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(); 
      }
分享到:
评论

相关推荐

    正则表达式的几种验证方法

    正则表达式,包括手机、电话、email、邮编的轻松验证

    经典的正则表达式总结文档

    正则表达式总结文档正则表达式总结文档正则表达式总结文档正则表达式总结文档正则表达式总结文档

    精通正则表达式~~~

    使用正则表达式匹配文本... 38 向更实用的程序前进... 40 成功匹配的副作用... 40 错综复杂的正则表达式... 43 暂停片刻... 49 使用正则表达式修改文本... 50 例子:公函生成程序... 50 举例:修整股票价格....

    php正则表达式

    个正则表达式是个特定格式化模式可以用来找出个串在另个串中使用情况几个编程语言包括Visual Basic,Perl,JavaScript和PHP都支持正则表达式希望在这篇入门指导结束Mitchell(作者自己)可以让你在PHP中 能应用些基本...

    几种类型的正则表达式

    关于几种类型校验码的正则表达式:手机号码、登录名、用户密码等。

    正则表达式的方法,数字类型,字符类型,浮点类型,常用检验标准

    30种正则表达式,选择Email和IPv4类型的验证方式,直接复制粘贴,永久保存使用 先看看几个举例: https://blog.csdn.net/qq_50767141/article/details/123838530 数字表达式:^[0-9]*$ Email地址表达式:^\w+([-+....

    正则表达式经典实例中文版 (美)高瓦特斯

    《正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报...

    C# 最全的日期正则表达式,没有之一

    按闰年的定义可知,日期可以有几种分类方法。 3.1.1 根据天数是否与年份有关划分为两类 与年份无关的一类中,根据每月天数的不同,又可细分为两类  1、3、5、7、8、10、12月为1-31日  4、6、9、11月为1-30日 与...

    正则表达式

    正则表达式的各个字符的意义及其使用方法,另外还有几种符号的等价用法,几种正则表达式的几种应用实例。

    正则表达式解决input框固定输入值得格式(金额,特殊字符)

    在写输入用到input的时候,经常出现以下几种情况: 只能输入某。栗子:只能输入数字,只能输入字母(大写,小写)只能输入某固定格式。栗子:只能输入金额,只能输入小数且最多保留2位不能输入某。栗子:不能输入...

    身份证号,出生日期等的js正则表达式验证

    关于身份证号,出生日期等的js正则表达式验证 有几种方式

    正则表达式的词法分析程序

    C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。 (2)打开一个C++源文件,打印出所有以上的记号。 (3)要求应用程序应为Windows界面。 ...

    正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)

    正则表达式中使用了特殊符号。下面我就将各种符号以及其意义和用法简单的介绍一下(说明:”X以上包括X”): / 表示在其后的文字是特殊符号。例:”n”和”n”是一致的。”/n”和换行符是一致的。 ^ 和输入的开始...

    正则表达式必知必会pdf

    目录 · · · · · ·第1章 正则表达式入门1.1 正则表达式的用途1.2 如何使用正则表达式1.3 什么是正则表达式1.4 使用正则表达式1.5 在继续学习之前1.6 小结第2章 匹配单个字符2.1 匹配纯文本2.2 匹配任意字符2.3 ...

    正则表达式测试工具(regexbuddy)

    正则表达式测试工具,适用于好几种语言,比如.net,java,perl,ruby等

    正则表达式匹配解析过程探讨分析(正则表达式匹配原理)

    已经有多篇关于正则表达式介绍的文章,随着我们越来越多使用正则表达式,想对性能做优化、减少我们正则表达式书写匹配Bug。我们不得不进一步深入了解正则表达式执行过程了。下面我们一起学习,分析下正则表达式执行...

    正则表达式的具体介绍.docx

    正则表达式(Regular Expression,通常简写为regex、regexp或RE)是对字符串操作的一种逻辑公式,它使用一系列预定义的特定字符及其组合来构成“规则字符串”,从而实现对字符串的过滤和匹配逻辑。 正则表达式的...

    Linux中几个正则表达式的用法.doc

    正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列。拥有强大的字符搜索功能。也非常方便的搜索过滤出我们想要的内容。

    Java使用正则表达式验证用户名和密码的方法

    主要介绍了Java使用正则表达式验证用户名和密码的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics