正则表达式(陈诗哲)_第1页
正则表达式(陈诗哲)_第2页
正则表达式(陈诗哲)_第3页
正则表达式(陈诗哲)_第4页
正则表达式(陈诗哲)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

正则表达式

RegularExpression陈诗哲什么是正则表达式正则表达式是一种语言,它由普通字符和元字符组成的文字模式。除了简单描述这些模式之外,正则表达式引擎通常可用于遍历匹配,并使用模式作为分隔符来将字符串解析为子字符串,或以智能方式替换文本或重新设置文本格式。正则表达式为解决与文本处理有关的许多常见任务提供了有效而简捷的方式。为什么要使用正则表达式在判断EMAIL等传统编程方法可能需要一二十行代码,使用正则表达式只需几行代码而已提高编程效率在Java中使用正则表达式java.util.regex.Patternjava.util.regex.Matcher简单的用法

Patternp=Ppile("a*b"); Matcherm=p.matcher("aaaaab");

booleanb=m.matcher();普通字符普通字符由所有那些除显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,以及一些符号。元字符^(carat).(period)$(dollarsign)|(pipe)((leftparenthesis))(rightparenthesis)*(asterisk)+(plussymbol)?(questionmark)[(leftbracket)\backslash{(leftcurlybracket).符号”.”符号可以匹配单个字符,优点是通用,同时缺点也是通用需求:如果想要找出三个字母组成的字符串,而且这些字符串必须以”t”字母开头,以”n”字母结束。你可以使用一个通配符—”.”。表达式:”t.n”匹配:”tan”,”t2n”,”t#n”,”tn”等[]符号”[]”中可以匹配指定单个字符需求:为了解决句点符号匹配范围过于广泛这一问题,你可以在”[]”里面指定看来有意义的字符。此时,只有”[]”里面指定的字符才参与匹配。表达式:”t[aei]n”匹配:”tan”,”ten”,”tin”^符号”^”用在”[]”内,表示不想要匹配的字符。需求:如果只是想一部分字符不匹配,其他的都匹配可以在”[]”内使用”^”排除指定字符表达式:”[^a]”匹配:除开字母a,其他的都可以匹配()符号和|符号”()”和”|”符号搭配使用可匹配指定单个或多个字符需求:为解决”.”和”[]”只能匹配单个字符的问题,你可以将”()”和”|”符号搭配起来使用。此时,”()”里面指定的单个或多个字符都可以匹配表达式:”t(a|e|i|cv)n”匹配:”tan”,”ten”,”tin”,”tcvn”\字符”\”(反斜杠)元字符既可根据特殊含义“转义”字符,也可指定预定义集合元字符的实例。需求:为了在正则表达式中包括文字样式的元字符,必须使用反斜杠进行“转义”。要匹配”c:\”这样的字符串就要先用斜杠元字符来转义文字反斜杠。表达式:”c:\\”匹配:”c:\”限定符遇到单个字符的重复问题,就要看下面的符号表了,这些符号用来确定紧靠该符号左边的符号出现的次数符号出现次数?0次或1次*大于等于0次+大于等于1次{n}刚好n次{n,}n次以上{n,m}n到m次实例1假如我们现在要搜索电话号码,号码的格式用来匹配他的正则表达式。在正则表达式中,连字符”-”有着特殊的意义,它表示一个范围,比如从0到9。因此,匹配电话号码中的连字符号时,它的前面要加上一个转义字符”\”。判断如下哪个是对的(0-9){4}\-(0-9){7}[0-9]{4}\-[0-9]{7}实例2在上个实例上进行扩展,要求区号3位或4位都可以,电话号码7位或9位都可以,中间的连字符可以出现也可以不出现。正确的写法是[0-9]{3,4}\-?([0-9]{7}|[0-9]{9})常用字符集合表示(预定义集合元字符)\d:匹配一个数字"[0-9]"\D:匹配任何的非数字"[^0-9]"\w:匹配所有的数字和字母以及下划线"[A-Za-z0-9_]"\W:匹配除数字、字母外及下划线外的其它字符"[^A-Za-z0-9_]"实例3写出一个合法的电子邮件正则表达式1.只能以普通字符开头和结尾2.必须包含一个并且只有一个符号”@”3.必须包含至少一个至多三个符号”.”4.不允许出现”@.”或者”.@”正确的写法是[\w]+[@]{1}[\w]+[\.]{1}[\w]+非打印字符(预定义集合元字符)\n匹配一个换行符\t匹配一个制表符\r匹配一个回车符\f匹配一个换页符\v匹配一个垂直制表符\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]\S匹配任何非空白字符定位符^匹配输入字符串的开始位置。如果设置RegExp对象的Multiline

属性,^也匹配'\n'或'\r'之后的位置。$匹配输入字符串的结束位置。如果设置RegExp对象的Multiline

属性,$也匹配'\n'或'\r'之前的位置。\b匹配一个单词边界,也就是指单词和空格间的位置。写在单词前和单词后是有区别的\B匹配非单词边界。匹配分组组是出圆括号分开的正则表达式,随后可以根据它们的组号进行调用,第0组表示整入表达式,第1组表示第1个圆括号括起来的组,等等,因此正则表达式:A(B(C))D中有3个组:第0组ABCD,第1组BC,第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论