java正则表达式-案例代码
来源:互联网 发布:国考行测技巧知乎 编辑:程序博客网 时间:2024/05/16 16:23
转载请注明出处:http://blog.csdn.net/droyon/article/details/8635735
jdk在线api:http://docs.oracle.com/javase/7/docs/api/index.html,选择java.utils.regex,可以查看Pattern类的介绍。
.:任意字符
[abc]:含有a,b,c的任意一个字符
[^abc]:除了a,b,c之外的任意字符
[a-zA-Z]:a到z,A到Z的任意字符
[abc[hij]]:a,b,c,h,i,j中的任意字符
[a-z&&hij]:匹配h,i,j中的任何一个交集
\s:空白符,空格,tab键,换行,换页,回车
\S:非空白符
\d:数字0到9
\D:非数字
\w:词字符[a-zA-Z0-9]
\W:非词字符
^:一行的开始
&:一行的结束
\b:词的边界
\B:非词的边界
\G:前一个匹配的结束
代码下载
PatternTest.java//字符串匹配正则表达式
public class PatternTest {public static void main(String args[]){for(String s:new String[]{"HelloWorld","[a-zA-Z]elloWorld","[a-zA-Z]+","[A-Z]?elloWorld","Hello.*"}){System.out.println("是否匹配:"+"HelloWorld".matches(s));}}}结果:
是否匹配:true
是否匹配:true
是否匹配:true
是否匹配:true
是否匹配:true
PatternMatcher.java//Pattern、Matcher类使用 abc+以及(abc)+的区别,+代表一个或多个 ?代表存在一个或一个没有
import java.util.regex.Matcher;import java.util.regex.Pattern;public class PatternMatcher {public static void main(String args[]){String s = "abcabcabcabchijabcccccc";String[] match = new String[]{"abc+","(abc)+"}; for(String m:match){System.out.println("regex args is:"+m);Pattern pattern = Pattern.compile(m);Matcher matcher = pattern.matcher(s);while(matcher.find()){System.out.println("匹配到内容:"+matcher.group()+"在字符串的:"+matcher.start()+"-"+matcher.end());}System.out.println("---------------------------");}}}结果:
regex args is:abc+
匹配到内容:abc在字符串的:0-3
匹配到内容:abc在字符串的:3-6
匹配到内容:abc在字符串的:6-9
匹配到内容:abc在字符串的:9-12
匹配到内容:abcccccc在字符串的:15-23
---------------------------
regex args is:(abc)+
匹配到内容:abcabcabcabc在字符串的:0-12
匹配到内容:abc在字符串的:15-18
---------------------------
PatternGroup.java// 正则表达式 A(B(CD))E,Matcher.groupCount为正则表达式的级别。那么,Matcher.group(0) = ABCDE ,Matcher.group(1) = BCD,Matcher.group(2) = CD.Matcher.start代表开始匹配的位置,Matcher.end代表结束匹配的位置。
import java.util.regex.Matcher;import java.util.regex.Pattern;public class PatternGroup {public static void main(String args[]){String s = "abchabcabchabdabcabcabcabcabch";Pattern pattern = Pattern.compile("(abc((abc)+h))");Matcher matcher = pattern.matcher(s);System.out.println(matcher.groupCount());while(matcher.find()){for(int j=0;j<=matcher.groupCount();j++){System.out.println("group,级别:"+j+".结果为:"+matcher.group(j)+"--start-end:"+matcher.start()+"-"+matcher.end());}System.out.println("-----------------------");}}}
结果:
3
group,级别:0.结果为:abcabch--start-end:4-11
group,级别:1.结果为:abcabch--start-end:4-11
group,级别:2.结果为:abch--start-end:4-11
group,级别:3.结果为:abc--start-end:4-11
-----------------------
group,级别:0.结果为:abcabcabcabcabch--start-end:14-30
group,级别:1.结果为:abcabcabcabcabch--start-end:14-30
group,级别:2.结果为:abcabcabcabch--start-end:14-30
group,级别:3.结果为:abc--start-end:14-30
-----------------------
PatternFlag.java//常用flag有:Pattern.CASE_INSENSITIVE,Pattern.MULTILINE,Pattern.DOTALL
import java.util.regex.Matcher;import java.util.regex.Pattern;public class PatternFlag {public static void main(String args[]){String s = "Java is good language!\n"+"JAVA is good one you choose.\n"+"java,we all use it.";Pattern pattern = Pattern.compile("^java",Pattern.CASE_INSENSITIVE|Pattern.MULTILINE);Matcher matcher = pattern.matcher(s);while(matcher.find()){System.out.println("匹配结果:"+matcher.group()+".start-end:"+matcher.start()+"-"+matcher.end());}}}
结果:
匹配结果:Java.start-end:0-4
匹配结果:JAVA.start-end:23-27
匹配结果:java.start-end:52-56
PatternSplit.java//split的用法
import java.util.Arrays;import java.util.regex.Matcher;import java.util.regex.Pattern;public class PatternSplit {public static void main(String args[]){String s = "Java is good language!\n"+"JAVA is good one you choose.\n"+"java,we all use it.";Pattern pattern = Pattern.compile("^java",Pattern.CASE_INSENSITIVE|Pattern.MULTILINE);Matcher matcher = pattern.matcher(s);//while(matcher.find()){//System.out.println("匹配结果:"+matcher.group()+".start-end:"+matcher.start()+"-"+matcher.end());//}System.out.println(Arrays.toString(pattern.split(s)));System.out.println("数组长度为:"+pattern.split(s).length);for(String arr:pattern.split(s)){System.out.println("数组内容为:"+arr);}}}
测试结果:
[, is good language!
, is good one you choose.
, ,we all use it.]
数组长度为:4
数组内容为:
数组内容为: is good language!
数组内容为: is good one you choose.
数组内容为:,we all use it.
PatternReplace.java//replace的用法
import java.util.regex.Matcher;import java.util.regex.Pattern;public class PatternReplace {public static void main(String args[]){String s = "***java is a good language!";System.out.println("字符串:"+s);String s1 = s.replaceAll(" {1,}", "-");System.out.println("替换空格为-:"+s1);String s2 = s.replaceAll("(?m)^\\*{1,}", "");System.out.println("替换字符串开头的*:"+s2);Pattern pattern = Pattern.compile("[aeiou]");Matcher matcher = pattern.matcher(s);StringBuffer sb = new StringBuffer();while(matcher.find()){matcher.appendReplacement(sb, matcher.group().toUpperCase());}System.out.println("替换字符串为:"+sb.toString());}}
结果为:
字符串:***java is a good language!
替换空格为-:***java-is-a-good-language!
替换字符串开头的*:java is a good language!
替换字符串为:***jAvA Is A gOOd lAngUAgE
- java正则表达式-案例代码
- JAVA正则表达式代码
- #hive_正则表达式#JAVA的正则表达式案例详解
- hive_正则表达式|JAVA的正则表达式案例详解<转>
- #hive_正则表达式#JAVA的正则表达式案例详解
- #hive_正则表达式#JAVA的正则表达式案例详解
- java正则表达式中group()方法案例
- Java中正则表达式的分割案例
- Java中正则表达式的分割案例
- Java正则表达式基础案例和语法
- java正则表达式的常用案例
- JAVA代码,正则表达式验证
- JAVA 实现正则表达式代码
- 正则表达式案例
- 正则表达式案例
- 正则表达式验证案例
- 正则表达式应用案例
- 正则表达式剖析-案例
- test
- SQL Server 2008 允许远程连接的解决方法
- JAVA 内部类
- java中list、set和map 的区别
- Struts2中文件上传和多文件上传以及获取HttpServletRequest / HttpSession / ServletContext / HttpServletRespons
- java正则表达式-案例代码
- Hdu Base Station (网络流最大权闭合图)
- POJ2531--Network Saboteur
- c++模板 (STL)
- 浮点数的二进制表示分析
- Struts2_事物管理&文件上传
- Linux启动过程
- TE6410之自己动手编写LED驱动
- buffer与cache