1.简介: 
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 
它包括两个类:Pattern和Matcher。

Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 
Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 
首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。

2.Pattern类:

Pattern的方法如下: static Pattern compile(String regex) 
将给定的正则表达式编译并赋予给Pattern类 
static Pattern compile(String regex, int flags) 
同上,但增加flag参数的指定,可选的flag参数包括:CASE_NSENSITIVE,MULTILINE,DOTALL,UNICODE_CASE,CANON_EQ。

int flags() 
返回当前Pattern的匹配flag参数。

String[] split(CharSequence input) 
将目标字符串按照Pattern里所包含的正则表达式为模进行分割。 
String[] split(CharSequence input, int limit) 
作用同上,增加参数limit目的在于要指定分割的段数,如将limi设为2,那么目标字符串将根据正则表达式分为割为两段。

现在我们先来看一个简单的例子,再通过分析它来了解怎样生成一个Pattern对象并且编译一个正则表达式,最后根据这个正则表达式将目标字符串进行分割:

package com.dajiangtai.djt_spider.util;

import java.util.regex.Pattern;

public class Replacement {
public static void main(String[] args) throws Exception {
// 生成一个Pattern,同时编译一个正则表达式
Pattern p = Pattern.compile("[/]+");
//用Pattern的split()方法把字符串按"/"分割
String[] result = p.split(
"Kevin has seen《LEON》seveal times,because it is a good film."
+"/ 凯文已经看过《这个杀手不太冷》几次了,因为它是一部"
+"好电影。/名词:凯文。");
for (int i=0; i<result.length; i++)
System.out.println(result[i]);
}
}

运行结果:

Kevin has seen《LEON》seveal times,because it is a good film.
凯文已经看过《这个杀手不太冷》几次了,因为它是一部好电影。
名词:凯文。

若使用String[] split(CharSequence input, int limit) 方法,则修改如下:

package com.dajiangtai.djt_spider.util;

import java.util.regex.Pattern;

public class Replacement {
public static void main(String[] args) throws Exception {
// 生成一个Pattern,同时编译一个正则表达式
Pattern p = Pattern.compile("[/]+");
//用Pattern的split()方法把字符串按"/"分割
String[] result = p.split(
"Kevin has seen《LEON》seveal times,because it is a good film."
+"/ 凯文已经看过《这个杀手不太冷》几次了,因为它是一部"
+"好电影。/名词:凯文。",2);
for (int i=0; i<result.length; i++)
System.out.println(result[i]);
}
}

运行结果如下:

Kevin has seen《LEON》seveal times,because it is a good film.
凯文已经看过《这个杀手不太冷》几次了,因为它是一部好电影。/名词:凯文。

一个正则表达式,也就是一串有特定意义的字符,必须首先要编译成为一个Pattern类的实例,这个Pattern对象将会使用matcher()方法来生成一个Matcher实例,接着便可以使用该 Matcher实例以编译的正则表达式为基础对目标字符串进行匹配工作,多个Matcher是可以共用一个Pattern对象的。

最新文章

  1. Excel: 公式
  2. Maven 创建多模块工程
  3. 文件控制列表命令setfacl和getfacl的使用
  4. CSS3中动画transform必须要了解的Skew变化原理
  5. 全局精确流量调度新思路-HttpDNS服务详解
  6. cnblogs的使用
  7. MonoBehaviour介绍(Unity3D开发之一)
  8. python学习笔记之集合
  9. [Swift]LeetCode730. 统计不同回文子字符串 | Count Different Palindromic Subsequences
  10. oracle 合并多个sys_refcursor
  11. vsCode 代码不高亮显示的问题
  12. Linux 文本处理工具grep,sed,awk
  13. 002-pro ant design-Unexpected end of JSON input while parsing near &#39;...错误解决方案
  14. Win10子系统Ubuntu安装llvm+clang
  15. 简单直白的去理解AOP,了解Spring AOP,使用 @AspectJ - 读书笔记
  16. 将jar文件加到Maven的local repository中
  17. stingray中modal window
  18. ubuntu 命令安装软件
  19. Loj10153 二叉苹果树
  20. matlab练习程序(Ritter‘s最小包围圆)

热门文章

  1. 【BZOJ4568】[Scoi2016]幸运数字 倍增+线性基
  2. 开发环境部署git 步骤
  3. Django的标准库django.contrib包介绍(转)
  4. 九度OJ 1055:数组逆置 (基础题)
  5. HTML5+ 权限设置
  6. COPY SAP 标准gui状态
  7. fragment 动态加载
  8. spring-boot4代码
  9. 作业:xml练习1
  10. 夏日户外风景PSD素材