目前的项目需要用到正则表达式,再总结一下正则表达式。正则表达式看似简单,其实方法很多,原因就是太灵活了。要完全掌握它仍然需要一些工作。1.正则表达式的原始字符读者需要对正则表达式的元字符有一个初步的印象,实际应用时可以参考文档。正则表达式可以分为六类:限定符、选择匹配器、分组组合和反向引用、字符匹配器、定位器、特殊字符1、限定符、转义符描述\转义符^匹配输入字符串的起始位置$匹配结束位置输入字符串的*匹配前一个子表达式零次或多次,相当于{0,}+匹配前一个子表达式一次或多次,相当于{1,}?零次或一次匹配前面的子表达式,相当于{0,1}{n}匹配确定n次{n,}至少匹配n次{n,m}至少匹配n次,最多匹配m次{?}当字符后面紧跟任何其他限制符(*,+,?,{n},{n,},{n,m})时,匹配模式为非贪婪{n,}至少匹配n次{\b}匹配一个词边界{\B}匹配一个非词边界2、字符匹配字符描述[xyz]匹配包含的任意一个字符1匹配任何不包含的字符[a-z]匹配指定范围Any2内的字符匹配任意不在指定范围内的字符3、捕获分组、非捕获分组字符描述(pattern)匹配pattern并得到本次匹配(?:pattern)匹配pattern但没有得到匹配结果,即这是一个非获取匹配(?=pattern)开头的任何字符串,匹配pattern来匹配搜索字符串4、特殊字符字符描述。匹配除\n之外的任何单词字符,以匹配包括"\n"在内的任何字符,使用类似"(.\n)"\d的模式来匹配数字字符。相当于[0-9]\D匹配一个数字字符。等价于[0-9]\r匹配换行符\s匹配任何空白字符\S匹配任何非空白字符\w匹配任何单词字符,包括下划线\W匹配任何非单词字符\t匹配制表符\W匹配任意非单词字符5,选择匹配字符x|y匹配x或y6,用正则表达式表示email/^#?([a-f0-9]{6}[a-f0-9]{3})$/URL/^(https?://)?([\da-z.-]+).([a-z.]{2,6})([/\w.-])/?$/二、表达式在java中的应用正则表达式在java中的应用主要有两类。下面列出一些常用的方法。需要注意的是,这些都是静态方法。1.Patternclasscompile(Stringregex)将给定的正则表达式编译成Matcher。matches(Stringregex,CharSequenceinput)直接匹配当前字符串#####2.Matcher类find(intstart)查找是否有匹配组(intgroup)获取匹配组matches()匹配当前字符串start()matchesStartpositionend(intgroup)matchendpositionreplaceAll(Stringreplacement)matchreplacement3.例1.java正则表达式的简单应用需求:提取{abc}中的内容@Testpublicvoidtest11(){Stringstr="知情同意书签署日期{zqdate}
