◆验证是否为邮箱地址
String str="ceponline@yahoo.com.cn"; Pattern pattern = Pattern.compile("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+",
Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(str); System.out.println(matcher.matches()); |
◆去除html标记
attern pattern = Pattern.compile("<.+?>", Pattern.DOTALL); Matcher matcher = pattern.matcher("<a href=\"index.html\">主页</a>"); String string = matcher.replaceAll(""); System.out.println(string); |
◆查找html中对应条件字符串
Pattern pattern = Pattern.compile("href=\"(.+?)\""); Matcher matcher = pattern.matcher("<a href=\"index.html\">主页</a>"); if(matcher.find()) System.out.println(matcher.group(1)); } |
◆截取http://地址
//截取url Pattern pattern = Pattern.compile("(http://|https://){1}[\\w\\.\\-/:]+"); Matcher matcher = pattern.matcher("dsdsds<http://dsds//gfgffdfd>fdf"); StringBuffer buffer = new StringBuffer(); while(matcher.find()){ buffer.append(matcher.group());
buffer.append("\r\n"); System.out.println(buffer.toString()); } |
◆替换指定{}中文字
String str = "Java目前的发展史是由{0}年-{1}年"; String[][] object={new String[]{"\\{0\\}","1995"},new String[]{"\\{1\\}","2007"}}; System.out.println(replace(str,object)); public static String replace(final String sourceString,Object[] object) { String temp=sourceString;
for(int i=0;i<object.length;i++){ String[] result=(String[])object[i]; Pattern pattern = Pattern.compile(result[0]); Matcher matcher = pattern.matcher(temp); temp=matcher.replaceAll(result[1]); } return temp; } |
◆以正则条件查询指定目录下文件
//用于缓存文件列表
private ArrayList files = new ArrayList();
//用于承载文件路径
private String _path;
//用于承载未合并的正则公式
private String _regexp;
class MyFileFilter implements FileFilter {
/**
* 匹配文件名称
*/
public boolean accept(File file) {
try {
Pattern pattern = Pattern.compile(_regexp);
Matcher match = pattern.matcher(file.getName());
return match.matches();
} catch (Exception e) {
return true;
}
}
}
/**
* 解析输入流
* @param inputs
*/
FilesAnalyze (String path,String regexp){
getFileName(path,regexp);
}
/**
* 分析文件名并加入files
* @param input
*/
private void getFileName(String path,String regexp) {
//目录
_path=path;
_regexp=regexp;
File directory = new File(_path);
File[] filesFile = directory.listFiles(new MyFileFilter());
if (filesFile == null) return;
for (int j = 0; j < filesFile.length; j++) {
files.add(filesFile[j]);
}
return;
}
/**
* 显示输出信息
* @param out
*/
public void print (PrintStream out) {
Iterator elements = files.iterator();
while (elements.hasNext()) {
File file=(File) elements.next();
out.println(file.getPath());
}
}
public static void output(String path,String regexp) {
FilesAnalyze fileGroup1 = new FilesAnalyze(path,regexp);
fileGroup1.print(System.out);
}
public static void main (String[] args) {
output("C:\\","[A-z|.]*");
}
Java正则的功用还有很多,事实上只要是字符处理,就没有正则做不到的事情存在
本文深入探讨了正则表达式在Java编程中的应用,包括验证邮箱地址、去除HTML标记、查找HTML中特定字符串、截取URL、替换指定文本以及以正则条件查询指定目录下文件的实例。

916

被折叠的 条评论
为什么被折叠?



