快速业务通道

正则表达式概述及在JAVA中的使用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

正则表达式概述及在JAVA中的使用

时间:2010-12-31

概述

你是否使用过查找*.tmp临时文件?

你是否使用过编辑工具中的查找/替换功能?

其实它们都使用了正则表达式

正则表达式的作用

提供更强大的字符串处理能力

测试字符串内的模式

例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或身份证号码模式。即数据验证

替换文本

可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。

基于模式匹配从字符串中提取子字符串

可以查找文档内或输入域内特定的文本。

在JAVA中使用正则表达式

正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持

jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。

正则表达式对字符串的操作主要包括:

1.字符串匹配

2.指定字符串替换

3.指定字符串查找

4.字符串分割

Pattern类

Pattern类的实例表示以字符串形式指定的正则表达式,其语法类似于Perl所用的语法。

用字符串形式指定的正则表达式,必须先编译成Pattern类的实例。生成的模式用于创建Matcher对象,它根据正则表达式与任意字符序列进行匹配。多个匹配器可以共享一个模式,因为它是非专属的

用compile方法把给定的正则表达式编译成模式,然后用matcher方法创建一个匹配器,这个匹配器将根据此模式对给定输入进行匹配。pattern方法可返回编译这个模式所用的正则表达式。

正则表达式概述及在JAVA中的使用(2)

时间:2010-12-31

Matcher类

通过调用某个模式的matcher方法,从这个模式生成匹配器。匹配器创建之后,就可以用它来执行三类不同的匹配操作:

matches方法根据此模式,对整个输入序列进行匹配

lookingAt方法根据此模式,从开始处对输入序列进行匹配。

find方法扫描输入序列,寻找下一个与模式匹配的地方

这些方法都会返回一个表示成功或失败的布尔值。如果匹配成功,通过查询匹配器的状态,可以获得更多的信息

构建正则表达式

\d 等於 [0-9] 数字

\D 等於 [^0-9] 非数字

\s 等於 [ \t\n\x0B\f\r] 空白字符

\S 等於 [^ \t\n\x0B\f\r] 非空白字符

\w 等於 [a-zA-Z_0-9] 数字或是英文字

\W 等於 [^a-zA-Z_0-9] 非数字与英文字

$表示每行的结尾

.匹配所有字符,包括空格、Tab字符甚至换行符

|或

[]方括号只允许匹配单个字符

^符号称为“否”符号。如果用在方括号内,表示不想要匹配的字符。表示每行的开头

()形成一组

查询

importjava.util.regex.*; publicclassRegexExample {    publicstaticvoidmain(String[]args)    {      Stringstr="aaabcefgABC";      StringregEx="aaa|fff";      Patternp=Pattern.compile(regEx);//编译成模式      Matcherm=p.matcher(str);//创建一个匹配器      booleanrs=m.find();      if(rs)      {        System.out.println("include!!!");      }      else      {        System.out.println("noinclude!!!");      }    } }

如果str中有regEx,那么rs为true,否则为flase。如果想在查找时忽略大小写,则可以写成Patternp=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);

正则表达式概述及在JAVA中的使用(3)

时间:2010-12-31

提取

(从本例给出所给完整路径中提取文件名)im()p(ortjava.util.rege

public class RegexExample2 { public static void main(String[] args) { String regEx=".+\\\\(.+)contentquot;; String str="c:\\dir1\\dir2\\name.txt"; Pattern p=Pat

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号