java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。
它包括两个类: Pattern和 Matcher
Pattern 一个Pattern是一个正则表达式经编译后的表现模式。
Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。
首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。
以下我们就分别来看看这两个类:
回页首
Pattern类:
Pattern的方法如下:
static Pattern compile(String regex)
将给定的正则表达式编译并赋予给Pattern类
static Pattern compile(String regex, int flags)
同上,但增加flag参数的指定,可选的flag参数包括:CASE INSENSITIVE,MULTILINE,DOTALL,UNICODE CASE, CANON EQ
int flags()
返回当前Pattern的匹配flag参数.
Matcher matcher(CharSequence input)
生成一个给定命名的Matcher对象
static boolean matches(String regex, CharSequence input)
编译给定的正则表达式并且对输入的字串以该正则表达式为模开展匹配,该方法适合于该正则表达式只会使用一次的情况,也就是只进行一次匹配工作,因为这种情况下并不需要生成一个Matcher实例。
String pattern()
返回该Patter对象所编译的正则表达式。
String[] split(CharSequence input)
将目标字符串按照Pattern里所包含的正则表达式为模进行分割。
String[] split(CharSequence input, int limit)
作用同上,增加参数limit目的在于要指定分割的段数,如将limi设为2,那么目标字符串将根据正则表达式分为割为两段。
一个正则表达式,也就是一串有特定意义的字符,必须首先要编译成为一个Pattern类的实例,这个Pattern对象将会使用 matcher()方法来生成一个Matcher实例,接着便可以使用该 Matcher实例以编译的正则表达式为基础对目标字符串进行匹配工作,多个Matcher是可以共用一个Pattern对象的。
现在我们先来看一个简单的例子,再通过分析它来了解怎样生成一个Pattern对象并且编译一个正则表达式,最后根据这个正则表达式将目标字符串进行分割:
import java.util.regex.*;
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 i system kevin has seen times it is a good film split input int limit tring result='p.split("Kevin' patterncompiler orocom="new" perl5compiler pattern expressions patternmatcher matcher="new" perl5matcher p='Pattern.compile("[/]+");' appendreplacement sb string replacement stringbuffer appendtail end group boolean find start groupcount lookingat matches replaceall replacefirst reset import java public class matchertest static void main args throws exception m='p.matcher("Kelvin' li and kelvin chan are both working in chen kelvinsoftshop company while kevinsoftshop grouptest cat cats the yard for email if deletedillegalchars="false;" www cgjmail></result>
分享到:
相关推荐
JAVA中正则表达式的应用 个人在网上 自己在家里写一些 java中常用的正则表达式 文件格式doc
Java中正则表达式使用方法详解.docx 网上搜集的Java中正则表达式使用方法详解
java中正则表达式Pattern类的应用,基本上用来验证之类的应用
在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/ 或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则...
C#中正则表达式应用,自己精心收集。有利于C#的快速开发。
有重点和调理,一看就会了. 只要涉及java两个类
java程序开发一些较实用的正则表达式用法,简单易懂,希望对广大程序员朋友有所帮助。
主要介绍了java中正则表达式实例详解的相关资料,需要的朋友可以参考下
js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用js中正则表达式的使用
获取每次使用引起小损失的分组。如果你实际并不需要获取一个分组内的文本,那么就使用非捕获分组。
浅析php中正则表达式的应用.pdf
比一般的文档都详细一些,特别是正反向,零宽度负预测先行断言等
javascript中正则表达式用法详解
php中正则表达式,主要是平常常用的正则表达式匹配使用
js中的正则表达式应用,比较全了,很好。很方便
Android日志过滤器中正则表达式的应用.pdf