- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * 正则表达式:字符串的处理利器
- * @author kenan
- *
- */
- public class RegularExpressions {
- public static void main(String[] args) {
- // 在正则表达式中 . 代表一个字符
- // System.out.println("abc".matches("..."));
- // \d 代表一个数字:使用表达式进行匹配替换
- // System.out.println("ab12356c".replaceAll("\\d", "-"));
- //这个是我们平时的用法
- // System.out.println("ab12346c".replaceAll("123", "---"));
- //编译一个正则表达式
- // Pattern p = Pattern.compile("[a-z]{3}");
- // 匹配一个字符串 , 返回一个 Matcher 对象
- // Matcher m = p.matcher("abc");
- // System.out.println(m.matches());
- // . : 一个字符
- //* : 0或多个字符
- //+: 1或者多个
- //?:0 或者 1个
- // System.out.println("a".matches("."));
- // System.out.println("aa".matches("aa"));
- // System.out.println("aaaa".matches("a*"));
- // System.out.println("".matches("a*"));
- // System.out.println("aaa".matches("a?"));
- // System.out.println("".matches("a?"));
- // System.out.println("a".matches("a?"));
- // System.out.println("123456".matches("\\d{3,100}"));
- // System.out.println("12".matches("\\d{3,100}"));
- // System.out.println("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
- // System.out.println("192.168.0.2".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
- // System.out.println("192".matches("[0-2][0-9][0-9]"));
- // System.out.println("192".matches("[0-9]"));
- //范围匹配
- // System.out.println("a".matches("[abc]"));
- // System.out.println("a".matches("[^abc]"));
- // System.out.println("A".matches("[a-zA-Z1-9]"));
- // System.out.println("3".matches("[a-zA-Z1-9]"));
- // System.out.println("A".matches("[a-z]|[A-Z]"));
- // System.out.println("R".matches("[A-Z&&[RFG]]"));
- // 认识 \s \w \d \
- // \d 一个数字 [0-9]
- // \D 上面取反
- // \s 一个空字符 [ \t\n\r\f\x0B]
- // \S 上面取反
- // \w 一个字符[a-zA-Z_0-9]
- // \W 出了上面的字符以为的其他字符
- // \\ 代表 一个 \
- // System.out.println(" \n\r\t".matches("\\s{1,4}"));
- // System.out.println(" ".matches("\\S"));
- // System.out.println("a_8".matches("\\w{1,3}"));
- // System.out.println("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));
- // System.out.println("\\".matches("\\\\"));
- // Posix Style
- // System.out.println("a".matches("\\p{Lower}"));
- //边界处理
- // ^ 在[ ] 里代表取反 在外面代表字符开头
- // $ 代表以什么结尾
- // \b代表 单词结束
- // System.out.println("hello sir".matches("^h.*"));
- // System.out.println("hello sir".matches(".*ir$"));
- // System.out.println("hello sirr".matches(".*ir$"));
- // System.out.println("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
- // System.out.println("hellosir".matches("^h[a-z]{1,3}o\\b.*"));
- // System.out.println("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
- // System.out.println("hello& sir".matches("^h[a-z]{1,3}o\\b.*"));
- // System.out.println("hello. sir".matches("^h[a-z]{1,3}o\\b.*"));
- //找出空白行
- // System.out.println(" \n".matches("^[\\s&&[^\\n]]*\\n$"));
- // System.out.println("\n".matches("^[\\s&&[^\\n]]*\\n$"));
- // System.out.println("soukenan@qq.com".matches("[\\w.-]+@[\\w.-]+\\.[\\w]+"));
- // matches from lookingat
- // Pattern p = Pattern.compile("\\d{3,5}");
- // String s = "123-45674-234-00";
- // Matcher m = p.matcher(s);
- // System.out.println(m.matches()); //false //从前往后匹配
- // m.reset(); // 把光标重置
- // System.out.println(m.find());//true //从当前的标志开始查找
- // System.out.println(m.start()+":"+m.end());
- // System.out.println(m.find()); //true 查找匹配的字串
- // System.out.println(m.start()+":"+m.end());
- // System.out.println(m.find()); //true
- // System.out.println(m.start()+":"+m.end());
- // System.out.println(m.find());//false
- //
- // System.out.println(m.lookingAt()); //true //从头开始看看 是否匹配
- // System.out.println(m.lookingAt()); //true
- // System.out.println(m.lookingAt()); //true
- // System.out.println(m.lookingAt()); //true
- //replacement 字符串的替换
- // Pattern p = null;
- // p = Pattern.compile("java");
- // p = Pattern.compile("java", Pattern.CASE_INSENSITIVE); //忽略大小写
- // Matcher m = p.matcher("java Java JaVa javA ,i love JAVA!");
- // while(m.find()){
- // System.out.println(m.group());
- // }
- // System.out.println(m.replaceAll("JAVA")); //把找到的匹配字符串转换成JAVA
- // StringBuffer buf = new StringBuffer();
- // int i =0;
- // while(m.find()){
- // i++;
- // if(i%2==0){
- // m.appendReplacement(buf, "java"); //偶数 转换成 java
- // }else{
- // m.appendReplacement(buf, "JAVA"); //奇数转换成 JAVA
- // }
- // }
- // m.appendTail(buf);//把尾部字符串添加上去
- // System.out.println(buf);
- //group 分组
- //() 这个是用来分组的
- Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
- String s = "123aa-3456bb-234cc-00";
- Matcher m = p.matcher(s);
- while(m.find()){
- System.out.println(m.group(1)+":"+m.group(2));
- }
- }
- }
本文出自 “Kenan_ITBlog” 博客,请务必保留此出处http://soukenan.blog.51cto.com/5130995/1131428