java正则表达式的查找提取分割删除
2013-04-08 14:03
274 查看
正则表达式在字符串处理上有着强大的功能,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] 数字
D 等於 [^0-9] 非数字
s 等於 [ x0Bf ] 空白字元
S 等於 [^ x0Bf ] 非空白字元
w 等於 [a-zA-Z_0-9] 数字或是英文字
W 等於 [^a-zA-Z_0-9] 非数字与英文字
^ 表示每行的开头
$ 表示每行的结尾
下面简单的说下它的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] 数字
D 等於 [^0-9] 非数字
s 等於 [ x0Bf ] 空白字元
S 等於 [^ x0Bf ] 非空白字元
w 等於 [a-zA-Z_0-9] 数字或是英文字
W 等於 [^a-zA-Z_0-9] 非数字与英文字
^ 表示每行的开头
$ 表示每行的结尾
相关文章推荐
- java利用正则表达式提取年月日数据
- 用java提取不同类型的文章标题就要设计出不同的正则表达式
- 【总结】java regex 正则表达式 提取数字和去除数字,过滤数字,提取价格
- java中正则表达式提取字符串中日期实现代码
- Java正则表达式非贪婪提取字符串中的每个数字
- Java正则表达式提取html纯文本
- Java 正则表达式提取标签中的属性(src 连接地址)等
- dreamweaver中用正则表达式查找替换批量删除 tppabs标签的方法
- JAVA正则表达式,提取img的src问题!!!
- java 正则表达式查找某段字符串中所有小写字母开头的单词并统计次数,按出现次数排序
- java 正则表达式高级篇(四种常用的处理方式:匹配 分割 替代 获取)
- Java正则表达式提取字符的方法实例
- java正则表达式提取数字的方法实例
- Java中正则表达式的分割案例
- 正则表达式几种常用功能—查询,提取,替换,分割
- JAVA中用正则表达式做全文查找
- jse.正则表达式--JAVA正则表达式,提取img的src问题!!!
- java正则表达式例程 提取网页中的email 统计代码的空行 有效代码行 注释行
- Java提取网页中url的正则表达式
- 如何使用java的正则表达式提取html标签?