`
yysct2005
  • 浏览: 87381 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

正则表达式在字符串处理上有着强大的功能

    博客分类:
  • java
阅读更多

 

 

正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持
 
  下面简单的说下它的4种常用功能:
  
  查询:
  
  以下是代码片段:
  String str="abc efg ABC";

  String regEx="a|f"; //表示a或f

  Pattern p=Pattern.compile(regEx);

  Matcher m=p.matcher(str);

  boolean rs=m.find();
  
  如果str中有regEx,那么rs为true,否则为flase。如果想在查找时忽略大小写,则可以写成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);
  
  提取:
  以下是代码片段:
  String regEx=".+\(.+)$";

  String str="c:\dir1\dir2\name.txt";

  Pattern p=Pattern.compile(regEx);

  Matcher m=p.matcher(str);

  boolean rs=m.find();

  for(int i=1;i<=m.groupCount();i++){

  System.out.println(m.group(i));

  }
  
  以上的执行结果为name.txt,提取的字符串储存在m.group(i)中,其中i最大值为m.groupCount();
  
  分割:
  
  以下是代码片段:

  String regEx="::";

  Pattern p=Pattern.compile(regEx);

  String[] r=p.split("xd::abc::cde");

  执行后,r就是{"xd","abc","cde"},其实分割时还有跟简单的方法:

  String str="xd::abc::cde";

  String[] r=str.split("::");
  
  替换(删除):
  
  以下是代码片段:

  String regEx="a+"; //表示一个或多个a

  Pattern p=Pattern.compile(regEx);

  Matcher m=p.matcher("aaabbced a ccdeaa");

  String s=m.replaceAll("A");
  
  结果为"Abbced A ccdeA"
  
  如果写成空串,既可达到删除的功能,比如:
  
  String s=m.replaceAll("");
  
  结果为"bbced ccde"
  
  附:
  
  \D 等於 [^0-9] 非数字
  \s 等於 [ \t\n\x0B\f ] 空白字元
  \S 等於 [^ \t\n\x0B\f ] 非空白字元
  \w 等於 [a-zA-Z_0-9] 数字或是英文字
  \W 等於 [^a-zA-Z_0-9] 非数字与英文字
  
  ^ 表示每行的开头
  $ 表示每行的结尾

 

分享到:
评论

相关推荐

    java中的正则表达式

    JAVA正则表达式4种常用功能 正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持 文章主要介绍Java中常用正则表达式的写法

    c语言 sscanf,scanf,fscanf正则表达式用法

    每种语言都对正则表达式有着不同程度的支持,在C语言中,有输入功能的这三个函数对正则表达式的支持并不强大,但是我们还是有必要了解一下。 首先来看看他们的原型: #include int scanf(const char *format, ...)...

    js正则表达式之exec方法讲解

    功能说明:该函数通过对指定你的字符串进行一次匹配检测,获取字符串中的第一个与正则表达式的内容,并且将匹配的内容和子匹配的结果存放在返回数组中 基本方法:objReg.exec&#40;string&#41; objReg,RegExp对象的...

    Java-PHP-C#

    让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符串来替代符合条件的字符串等强大的功能,不学...

    高清 Boost开发指南

    使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简洁、优雅、灵活...

    Boost程序库完全开发指南:深入C++_准_标准库 第3版

    使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简捷、优雅、灵活...

    Boost程序库完全开发指南.pdf

    使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简洁、优雅、灵活...

    Boost程序库完全开发指南

    使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简捷、优雅、灵活...

    BOOST程序库完全开发指南:深入C++“准”标准库(第3版).罗剑锋(带详细书签)

    使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简捷、优雅、灵活...

    Boost程序库完全开发指南:深入C++“准”标准库+.pdf

    使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简洁、优雅、灵活...

    嵌入式系统/ARM技术中的基于QS的字符串匹配改进算法

    按照功能,串匹配算法主要分为三类:精确串匹配算法、近似串匹配算法和正则表达式算法。其中,最有影响的是KMP算法、BM算法、RK随机算法和SUANDAY算法以及由此而产生的一些改进算法。在实际应用中,这些算法都...

    Boost程序库完全开发指南第3版

    使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简洁、优雅、灵活...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(&#92;)可以被用来分割某些特殊字符。举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # ...

Global site tag (gtag.js) - Google Analytics