lovejobs

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  138 随笔 :: 3 文章 :: 46 评论 :: 28万 阅读

一.JAVA复杂文本操作
---相关类 java.util.regex
---类Pattern
----正则表达式的编译表示形式
----Pattern p = Pattern.compiler(r,int);建立正则表达式,并启用相关模式

---类Matcher
----通过解释Pattern对character sequence执行匹配的操作的引擎
----Matcher m = p.matcher(str);//匹配字符串

1.使用正则表达式查找notepad++

      

2.eclips

        

3.在java中的使用

复制代码
 1 package com.hui.regex;
 2 
 3 import java.util.regex.Matcher;
 4 import java.util.regex.Pattern;
 5 
 6 public class Test01 {
 7 
 8     public static void main(String[] args) {
 9         // 18700870982和i123huikl是否符合指定的表达式:[\w]+
10             Pattern p = Pattern.compile("[\\w]+");    //根据字符串正则表达式建立正则表达式对象
11             
12             //创建要和正则表达式匹配的对象
13             Matcher m = p.matcher("18700870982i123huikl");
14             Matcher m1 = p.matcher("18oifdfoo87700870;_!2i123huikllfkjglkfdjg123156rtoti");
15             
16             //判断整个字符串是否匹配
17             boolean yesorno = m.matches();
18             boolean yesorno1 = m1.matches();
19             System.out.println(yesorno);
20             System.out.println(yesorno1);
21             System.out.println("-------------------------------");
22             
23             //一直往下找匹配的,调用一次找一次
24 //            boolean find1 = m1.find();
25 //            //找到内容
26 //            System.err.println(m1.group());
27 //            
28 //            System.out.println(m1.find());
29 //            //找到内容
30 //            System.err.println(m1.group());
31 //            System.out.println(m1.find());
32 //            System.out.println(m1.find());
33             while (m1.find()) {
34                 System.out.println(m1.group());
35                 System.out.println(m1.group(0));
36             }
37             System.out.println("-------------------------------");
38             
39             
40     }
41 
42 }
复制代码

4.运行结果

5.分组

复制代码
 1 package com.hui.regex;
 2 
 3 import java.util.regex.Matcher;
 4 import java.util.regex.Pattern;
 5 /*
 6  * 分组的使用
 7  */
 8 public class Test {
 9 
10     public static void main(String[] args) {
11         // 18700abc*870982i123huikl*12dsjk是否符合指定的表达式:[\w]+
12             Pattern p = Pattern.compile("([\\w][a-z]{2})([a-z])");    //根据字符串正则表达式建立正则表达式对象
13             
14             //创建要和正则表达式匹配的对象
15             Matcher m = p.matcher("18700abc*870982i123huikl*12dsjk");
16 
17             while (m.find()) {
18                 System.out.println(m.group());
19                 System.out.println(m.group(1));
20                 System.out.println(m.group(2));
21 
22             }
23             System.out.println("-------------------------------");
24             
25             
26     }
27 
28 }
复制代码

6.运行结果

7.字符串的替换和分割

复制代码
 1 package com.hui.regex;
 2 
 3 import java.util.Arrays;
 4 import java.util.regex.Matcher;
 5 import java.util.regex.Pattern;
 6 /*
 7  * 替换和分割的使用
 8  */
 9 public class Test2 {
10 
11     public static void main(String[] args) {
12         // 18700abc*870982i123huikl*12dsjk是否符合指定的表达式:[\w]+
13             Pattern p = Pattern.compile("[0-9]");    //根据字符串正则表达式建立正则表达式对象
14             
15             //创建要和正则表达式匹配的对象
16             Matcher m = p.matcher("18700abc*870982i123huikl*12dsjk");
17 
18             String newstring = m.replaceAll("#");
19             System.out.println(newstring);
20             System.out.println("-------------------------------");
21             //分割字符串
22             String str = "dsjhdkljfdk213figofio5456poptror";
23             String[] split = str.split("[0-9]+");
24             System.out.println(Arrays.toString(split));
25             
26             
27     }
28 
29 }
复制代码

8.运行结果

 

posted on   lovejobs  阅读(317)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示