首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

正则表达式剖解

2014-01-17 
正则表达式剖析package com.wjy.patternimport java.io.PrintWriterpublic class Pattern1 {public stat

正则表达式剖析
package com.wjy.pattern;import java.io.PrintWriter;public class Pattern1 {public static void main(String args[]) {PrintWriter out=new PrintWriter(System.out,true);out.println("-1234".matches("(-|\\+)?\\d*"));}}

?matches函数中的就是大名鼎鼎的正则表达式。

? ? ? ? ? ? ? ? ? ?\\W ? ?: ? ?非词字符(相当于:^\w)

? ? ? ? ? ? ? ? ? ?\\w ? ? : ? ?词字符(a-zA-Z0-9)

? ? ? ? ? ? ? ? ? ?\\D ? ? : ? ?非数字

? ? ? ? ? ? ? ? ? ?\\d ? ? : ? ?数字

??? ? ? ? ? ? ? ? ?\\S ? ? : ? ?非空白符(相当于: ^\s)

? ? ? ? ? ? ? ? ? ?\\s ? ? : ? ? 空白符(空格,回车,换行,换页,tab)

? ? ? ? ? ? ? ? ? ?? ? ? ?: ? ? ?一个或零个

? ? ? ? ? ? ? ? ? ?* ? ? ?: ? ? ?零个或多个

? ? ? ? ? ? ? ? ? ?+ ? ? ?: ? ? ?一个或多个

? ? ? ? ? ? ? ? ? ?{n} ? ? : ? ? ?恰好n个

?? ? ? ? ? ? ? ? ?{n,} ? ? : ? ? ?至少n个

?? ? ? ? ? ? ? ? ?{n,m} ? ? : ? ? ?至少n个,不超过m个

看一个将指定目录下满足文件名要求的文件列出来的例子,这里用到了Pattern和Matcher:

               File pathFile=new File("./src/com/wjy/multithread/");String[] listStrings=pathFile.list(new DirFilter("M\\w+.?\\w+"));Arrays.sort(listStrings, String.CASE_INSENSITIVE_ORDER);for (String string : listStrings) {System.out.println(string);}

?而关键的类在下面:

package com.wjy.multithread;import java.io.File;import java.io.FilenameFilter;import java.util.regex.Pattern;public class DirFilter implements FilenameFilter{private final Pattern pattern;public DirFilter(String regex){pattern=Pattern.compile(regex);}@Overridepublic boolean accept(File dir, String name) {// TODO Auto-generated method stubreturn pattern.matcher(name).matches();}}

?

热点排行