`
百合不是茶
  • 浏览: 344477 次
社区版块
存档分类
最新评论

JAVA正则表达式匹配 查找 替换 提取操作

阅读更多

正则表达式的查找;主要是用到String类中的split();

      String str;

     str.split();方法中传入按照什么规则截取,返回一个String数组

 

常见的截取规则:

str.split("\\.")按照.来截取

str.split(" ")按照空格截取

str.split("cc+")按照c字符来截取,2个c或以上

str.split((1)\\.+)按照字符串中含有2个字符或以上的地方截取(1)表示分组为1

 

 

截取的例子;

 

 按照分组截取;截取的位置在两个或两个以上的地方

          		  String str = "publicstaticccvoidddmain"; 
		  //对表达式进分组重用 
		  String ragex1="(.)\\1+"; 
		  String[] ss = str.split(ragex1);
		  for(String st:ss){
		  System.out.println(st); 
		  }

 

//按照两个cc+来截取

   String ragex = " "; 
		//切割 
		 String strs = "publicstaticccvoidddmain"; 
		String ragexs = "cc+";
		String[] s = strs.split(ragexs);
		for(String SSSS :s){
		System.out.println(SSSS);
		}
		System.out.println("=-=========");

 

 

 

正则表达式中的替换;

语法定义规则;

  String s =str.replaceAll(ragex, newstr);

 字符串中的替换是replace();

将4个或4个以上的连续的数字替换成*

	// 替换
		 String str="wei232123jin234";
		 String ragex = "\\d{4,}";
		 String newstr = "*";
		 String s =str.replaceAll(ragex, newstr);
		 System.out.println(s);

 

将重复的字符串换成一个*

		 String str ="wwweiei222222jjjiiinnn1232";
		 String ragex ="(.)\\1+";
		 String newStr ="*";
		 String s = str.replaceAll(ragex, newStr);
		 System.out.println(s);

 

 

将 我...我...要..要.吃...吃...饭 换成 我要吃饭

 

	String str = "我...我...要..要.吃...吃...饭";
		String regex = "\\.+";
		String newStr = "";
		str=test(str, regex, newStr);

		regex = "(.)\\1+";
		newStr = "$1";
		test(str, regex, newStr);

public static String test(String str, String regex, String newStr) {
		String str2 = str.replaceAll(regex, newStr);
		System.out.println(str2);
		return str2;
	}

 

正则表达式的字符串的获取

1,根据定义的正则表达式创建Pattern对象

2,使用Pattern对象类匹配

3,判断是否为true

4,加入到组

 

例子;

	String str = "public static void main(String[] args)"
				+ " public static void main(String[] args)public static void main(String[] args)";
         String ragex = "\\b[a-zA-Z]{4,5}\\b";
         Pattern p  =Pattern.compile(ragex);
         Matcher m =  p.matcher(str);
       while(m.find()){
    	  String s =  m.group();
    	  System.out.println(s);
       }

 

 

 

作业:

1,获取<html>user</user>中的user

 String str ="<html>user</html>";
String regex = "<html>|</html>"; 
 String newStr = ""; 
String str2 = str.replaceAll(regex, newStr);
System.out.println(str2);

 

2,获取dhfjksaduirfn 11@qq.com dsjhkfa wang@163.com wokaz中的邮箱号码

 String regex = " "; 
String[] strs=str.split(regex);
 for(String str2:strs){
  String ragexDemo = "[a-zA-Z0-9]([a-zA-Z0-9]*[-_]?[a-zA-Z0-9]+)*"
	+ "@([a-zA-Z0-9]+)\\.[a-zA-Z]+\\.?[a-zA-Z]{0,2}";
Pattern p =  Pattern.compile(ragexDemo);
Matcher m = p.matcher(str2);
while(m.find()){
System.out.println(m.group());
   }
 }

 

 

0
0
分享到:
评论

相关推荐

    正则表达式

    1、 正则表达式是一个强大的字符串处理工具,可以对字符串进行、查找、提取、分割、替换等操作。它简单而且实用,是一个用于匹配字符串的模板,我们定义的任意的一个字符串都可以看成是一个正则表达式。 2、 String...

    精通正则表达式~~~

    使用正则表达式匹配文本... 38 向更实用的程序前进... 40 成功匹配的副作用... 40 错综复杂的正则表达式... 43 暂停片刻... 49 使用正则表达式修改文本... 50 例子:公函生成程序... 50 举例:修整股票价格....

    正则表达式经典实例

    即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括c#、Java、JavaScript、Perl、PHP、Python、Ruby和VB...

    正则表达式经典实例.pdf

    即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括c#、Java、JavaScript、Perl、PHP、Python、Ruby和VB...

    正则表达式—Java知识点补充

    正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作。

    javascript学习笔记(八)正则表达式

    正则表达式是一种查找以及字符串替换操作。正则表达式在文本编辑器中广泛使用,比如正则表达式被用于: [copy]检查文本中是否含有指定的特征词 找出文中匹配特征词的位置 从文本中提取信息,比如:字符串的子

    java范例开发大全源代码

     实例105 使用正则表达式验证电话号码的格式 141  6.2 字符串缓存类StringBuffer 143  实例106 创建字符串缓存类 143  实例107 提取单个字符 144  实例108 给指定字符赋值 145  实例109 插入新的...

    Java范例开发大全 (源程序)

     实例105 使用正则表达式验证电话号码的格式 141  6.2 字符串缓存类StringBuffer 143  实例106 创建字符串缓存类 143  实例107 提取单个字符 144  实例108 给指定字符赋值 145  实例109 插入新的字符 146...

    java范例开发大全

    实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的...

    Java范例开发大全(全书源程序)

    实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 ...

    java范例开发大全(pdf&源码)

    实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的...

    javaSE代码实例

    13.6.2 利用正则式进行查找替换 267 13.6.3 利用正则式对字符串进行分析 268 13.7 小结 269 第14章 集合框架——强大的对象管理器 270 14.1 Object类——所有类的超类 270 14.1.1 toString方法的重写 ...

    MySQL5.1参考手册官方简体中文版

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 数据库、...

    mysql官方中文参考手册

    2.3.7. 提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动服务器 2.3.11. 从Windows命令行启动MySQL 2.3.12. 以Windows服务方式启动MySQL 2.3.13. 测试MySQL安装 2.3.14. 在...

    MYSQL中文手册

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2....

    MySQL 5.1参考手册中文版

    2.3.7. 提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动服务器 2.3.11. 从Windows命令行启动MySQL 2.3.12. 以Windows服务方式启动MySQL 2.3.13. 测试MySQL安装 2.3.14. ...

    MySQL 5.1参考手册

    2.3.7. 提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动服务器 2.3.11. 从Windows命令行启动MySQL 2.3.12. 以Windows服务方式启动MySQL 2.3.13. 测试MySQL安装 2.3.14. 在...

    mysql5.1中文手册

    提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动服务器 2.3.11. 从Windows命令行启动MySQL 2.3.12. 以Windows服务方式启动MySQL 2.3.13. 测试MySQL安装 ...

Global site tag (gtag.js) - Google Analytics