Java 使用正则表达式对象实现正则的获取功能

 更新时间:2019-04-17 21:43:08   作者:佚名   我要评论(0)

获取需要使用到正则的两个对象:
使用的是用正则对象Pattern 和匹配器Matcher。
用法:


范例:




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

获取需要使用到正则的两个对象:

使用的是用正则对象Pattern 和匹配器Matcher。

用法:

范例:

 Pattern p = Pattern.compile("a*b");
 Matcher m = p.matcher("aaaaab");
 boolean b = m.matches();

步骤:

1,先将正则表达式编译成正则对象。使用的是Pattern类一个静态的方法。compile(regex);

2,让正则对象和要操作的字符串相关联,通过matcher方法完成,并返回匹配器对象。

3,通过匹配器对象的方法将正则模式作用到字符串上对字符串进行针对性的功能操作

需求:获取由3个字母组成的单词。

public static void getDemo()
{
  String str = "da jia zhu yi le,ming tian bu fang jia,xie xie!";
  //想要获取由3个字母组成的单词。
  //刚才的功能返回的都是一个结果,只有split返回的是数组,但是它是把规则作为分隔符,不会获取符合规则的内容。
  //这时我们要用到一些正则对象。
  String reg = "\\b[a-z]{3}\\b";
  Pattern p = Pattern.compile(reg);
  Matcher m = p.matcher(str);
  while(m.find())
  {
    System.out.println(m.start()+"...."+m.end());
    System.out.println("sub:"+str.substring(m.start(),m.end()));
    System.out.println(m.group());
  }
//   System.out.println(m.find());//将规则对字符串进行匹配查找。
//   System.out.println(m.find());//将规则对字符串进行匹配查找。
//   System.out.println(m.group());//在使用group方法之前,必须要先找,找到了才可以取。
}

校验邮件

public static void checkMail()
{
  String mail = "abc123@sina.com.cn";
  mail = "1@1.1";
  String reg = "[a-zA-Z_0-9]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
  reg = "\\w+@\\w+(\\.\\w+)+";//简化的规则。笼统的匹配。
  boolean b = mail.matches(reg);
  System.out.println(mail+":"+b);
}

网络爬虫 (获取邮箱)

class GetMailList 
{
public static void main(String[] args) throws Exception
{
  String reg = "\\w+@[a-zA-Z]+(\\.[a-zA-Z]+)+";
  getMailsByWeb(reg);
}
public static void getMailsByWeb(String regex)throws Exception
{
  URL url = new URL("http://localhost:8080/myweb/mail.html");
  URLConnection conn = url.openConnection();
  BufferedReader bufIn = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  String line = null;
  Pattern p = Pattern.compile(regex);   
  while((line=bufIn.readLine())!=null)
  {
    //System.out.println(line);
    Matcher m = p.matcher(line);
    while(m.find())
    {
      System.out.println(m.group());
    }
  }
  bufIn.close();
}
public static void getMails(String regex)throws Exception
{
  BufferedReader bufr = 
    new BufferedReader(new FileReader("mail.txt"));
  String line = null;
  Pattern p = Pattern.compile(regex);   
  while((line=bufr.readLine())!=null)
  {
    //System.out.println(line);
    Matcher m = p.matcher(line);
    while(m.find())
    {
      System.out.println(m.group());
    }
  }
  bufr.close();
}
}

单词边界匹配器 \b

\b代表一个单词的开始和结束部分,不匹配任何字符

总结

以上所述是小编给大家介绍的Java 使用正则表达式对象实现正则的获取功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Properties 持久的属性集的实例详解

    Properties 持久的属性集的实例详解

    Properties 持久的属性集的实例详解 特点: 1、Hashtable的子类,map集合中的方法都可以用。 2、该集合没有泛型。键值都是字符串。 3、它是一个可以
    2019-04-17
  • Java 使用正则表达式对象实现正则的获取功能

    Java 使用正则表达式对象实现正则的获取功能

    获取需要使用到正则的两个对象: 使用的是用正则对象Pattern 和匹配器Matcher。 用法: 范例: Pattern p = Pattern.compile("a*b"); Matcher m =
    2019-04-17
  • .Net Core自定义配置源从配置中心读取配置的方法

    .Net Core自定义配置源从配置中心读取配置的方法

    前言 配置,几乎所有的应用程序都离不开它。.Net Framework时代我们使用App.config、Web.config,到了.Net Core的时代我们使用appsettings.json,这些我们再熟
    2019-04-17
  • .NET实现工资管理系统

    .NET实现工资管理系统

    本文实例为大家分享了.NET实现工资管理系统的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.Linq
    2019-04-17
  • 浅谈SpringMVC jsp前台获取参数的方式 EL表达式

    浅谈SpringMVC jsp前台获取参数的方式 EL表达式

    JAVA: request.setAttribute("msg", "1234"); session.setAttribute("msg2", "1234"); JSP: ${requestScope.msg} ${sessionScope.msg2} JAVA: Mo
    2019-04-17
  • 浅谈PHPANALYSIS提取关键字

    浅谈PHPANALYSIS提取关键字

    最近在开发一个文章模块功能,设计那边提出要给文章生成对应标签,用于文章关联推送,这里和大家分享一下实现过程; 这里需要用到PHPAnalysis,下载链接如下
    2019-04-17
  • 正则表达式语句中的注释方法分享

    正则表达式语句中的注释方法分享

    小括号的另一种用途是通过语法(?#comment)来包含注释。 例如:2[0-4]\d(?#200-249)|25[0-5](?#250-255)|[01]?\d\d?(?#0-199)。 要包
    2019-04-17
  • JSP页面跳转方法大全

    JSP页面跳转方法大全

    先来介绍一下在服务端JSP脚本中跳转页面的几种方法: 1. response.sendRedirct("跳转到页面"); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的
    2019-04-17
  • PHP levenshtein()函数用法讲解

    PHP levenshtein()函数用法讲解

    PHP levenshtein() 函数 实例 计算两个字符串之间的 Levenshtein 距离: <&#63;php echo levenshtein("Hello World","ello World"); echo "<br>"; echo lev
    2019-04-17
  • 浅谈PHP无限极分类原理

    浅谈PHP无限极分类原理

    1.递归:程序调用自身的编程技巧称为递归 2.案例: /** * @param 递归 $[name] */ function deeploop(&$i=1){ echo $i; $i++; if($i < 10){
    2019-04-17

最新评论