u)     在这个模式下,假设你还启用了CASE_INSENSITIVE标志,那么它会对Unicode字符进行大写和小写不明感的匹配。默认情况下,大写和小写不敏感的匹配仅仅适用于US-ASCII字符集。

Pattern.UNIX_LINES(?d)     在这个模式下,仅仅有'/n'才被认作一行的中止,而且与'.','^'。以及'$'进行匹配。

抛开空泛的概念,以下写出几个简单的Java正则用例:

◆比方,在字符串包括验证时

//查找以Java开头,随意结尾的字符串

Pattern pattern = Pattern.compile("^Java.*");

Matcher matcher = pattern.matcher("Java不是人");

boolean b= matcher.matches();

//当条件满足时,将返回true,否则返回false

System.out.println(b);

◆以多条件切割字符串时

Pattern pattern = Pattern.compile("[, |]+");

String[] strs = pattern.split("Java Hello World  Java,Hello,,World|Sun");

for (int i=0;i

System.out.println(strs[i]);

}

◆文字替换(首次出现字符)

Pattern pattern = Pattern.compile("正則表達式");

Matcher matcher = pattern.matcher("正則表達式 Hello World,正則表達式 Hello World");

//替换第一个符合正则的数据

System.out.println(matcher.replaceFirst("Java"));

◆文字替换(所有)

Pattern pattern = Pattern.compile("正則表達式");

Matcher matcher = pattern.matcher("正則表達式 Hello World,正則表達式 Hello World");

//替换第一个符合正则的数据

System.out.println(matcher.replaceAll("Java"));

◆文字替换(置换字符)

Pattern pattern = Pattern.compile("正則表達式");

Matcher matcher = pattern.matcher("正則表達式 Hello World,正則表達式 Hello World ");

StringBuffer sbr = new StringBuffer();

while (matcher.find()) {

matcher.appendReplacement(sbr, "Java");

}

matcher.appendTail(sbr);

System.out.println(sbr.toString());

◆验证是否为邮箱地址

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标记

Pattern pattern = Pattern.compile("<.>", Pattern.DOTALL);

Matcher matcher = pattern.matcher("主页");

String string = matcher.replaceAll("");

System.out.println(string);

◆查找html中相应条件字符串

Pattern pattern = Pattern.compile("href=/"(.+?)/"");

Matcher matcher = pattern.matcher("主页");

if(matcher.find())

System.out.println(matcher.group(1));

}

◆截取http://地址

//截取url

Pattern pattern = Pattern.compile("(http://|https://){1}[//w//.//-/:]+");

Matcher matcher = pattern.matcher("dsdsdsfdf");

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

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正則表達式入门相关推荐

  1. Java正則表達式入门

     众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...

  2. Java正則表達式詳解

    來源:http://www.computerworld.com.cn 如果你曾經用過Perl或任何其他內建正則表達式支持的語言,你一定知道用正則表達式處理文本和匹配模式是多簡單.如果你不熟悉這個術語, ...

  3. java 判断二级网址_【Java】利用正則表達式推断是否为网址

    本文与<[JavaScript]利用正則表達式检查输入框输入的是否为网址>(点击打开链接)为姊妹篇,在上文中已经提到了,正則表達式在各个程序是通用的,这里不再解说正則表達式的详细使用方法. ...

  4. Java之正則表達式【使用语法】

    认为好就顶一个!! ! ! 3.正則表達式 用一些特殊的有意义的字符组成的字符串(死记) 原子:正則表達式的最基本组成单位 正則表達式特殊意义的字符:   .  *  +  ?不能单独表示它们,假设非 ...

  5. JAVA正則表達式小总结

    近期项目中正在做后台校验,而后台校验也基本都是使用正則表達式校验.本文做一些粗略的总结. 1.字符串长度:.{1,10},注意有一个点在{}前,表示匹配全部.'{}'之前一定是一个捕获组,因此假设有其 ...

  6. 【开卷故意】JAVA正則表達式模版

    专业既然是机器学习.那工作肯定也是继续和数据打交道,那么问题来了,非常多时候推荐算法和数据挖掘算法都是现成可用的,平台初建,重点还在数据过滤和抽取.如何高效的抽取数据? 利用往常算法比赛中经常使用的字 ...

  7. 正則表達式截取字符串两字符间的内容

    一.问题 我有个字符串比方a="abcdanmcadedcdeefako"那么我怎么能得到一个数组,当中数组的各项是字母a和c的中间字符.即第一项是"b"第二项 ...

  8. 最全正則表達式汇总—想要的都有了

    正则式太难学,并且easy忘记 ,西西是看过非常多次.都是一会就所有不记得了滴.非常多不太懂正则的朋友.在遇到须要用正则校验数据时,往往是在网上去找非常久.结果找来的还是不非常符合要求. 所以我近期把 ...

  9. python使用正則表達式

    python中使用正則表達式 1. 匹配字符 正則表達式中的元字符有 .  ^  $ *   +  ?  { }  [ ]  \  | ( ) 匹配字符用的模式有 \d 匹配随意数字 \D 匹配随意非 ...

最新文章

  1. 设计模式学习总结-迭代器模式(Iterator Pattern)
  2. hadoop2.2.0安装,完全分布式安装
  3. mina应用程序架构(翻译)
  4. 一至七-----小东西
  5. php4.3.x 5.2.x,XDEBUG for PHP 5.3.0
  6. 联想拯救者Y90游戏性能实测:全程满帧 散热能力出众
  7. python aop编程_学习笔记: AOP面向切面编程和C#多种实现
  8. asp.net mvc Autofac 依赖注入框架 使用
  9. 高性能Javascript重绘和重排学习笔记
  10. IOS SDWebImage实现原理详解
  11. 管理感悟:职责明确的结果,必然是无人管事
  12. 解决Matlab2016无法访问笔记本自带摄像头问题
  13. linux系统开启ssh端口号
  14. 计算机课对小学生的作用,小学信息技术课的最重要性
  15. simulink解微分方程
  16. 数学知识学习之——商空间(Quotient Spaces)
  17. VsCode文件屏蔽
  18. 后摩尔时代新星之自旋电子器件
  19. 【uni-app】封装websokcet以及使用方法
  20. 零基础云开发一个投票小程序 | 我的投票列表页

热门文章

  1. 欢迎使用CSDN-markdown编辑器·211
  2. Nginx会话保持之nginx-sticky-module模块
  3. 页面加载速度优化的12个建议
  4. android mp3 lrc歌词文件utf-8歌词显示为乱码,Android读取本地json文件的方法(解决显示乱码问题)...
  5. php reids的geo功能,Redis GEO相关命令和功能,你造吗?
  6. 手机python代码阅读_教你阅读Python开源项目代码!
  7. php 无限查找下级业绩_php如何查找会员无限分类的所有上级和所有下级
  8. 参数数组长度_JS数组操作方法总结(二)——pop、shift、push、unshift
  9. mysql providername_c#访问各数据库的providerName各驱动-阿里云开发者社区
  10. header中的参数讲解