zoukankan      html  css  js  c++  java
  • 精通正则表达式第1讲(源码)

    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1FormalExpressShow.java]
    package net.itcast.course.regex.basic.lesson1;
    
    public class FormalExpressShow {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            String regex1 = "\d+";
            
            String str1 = "0123456";
            
            if(str1.matches(regex1)) {
                System.out.println(""" + str1 + "" can be matched with regex "" + regex1 + """);
            }
            
            String regex2 = "sep[ea]r[ea]te";
            
            String str2 = "seperate";
            
            if(str2.matches(regex2)) {
                System.out.println(""" + str2 + "" can be matched with regex "" + regex2 + """);
            }
            
    
        }
    
    }
    
    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1ModeExample.java]
    package net.itcast.course.regex.basic.lesson1;
    
    public class ModeExample {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            String emailRegex = Regexes.USERNAME_REGEX + "@"
                    + Regexes.HOSTNAME_REGEX;
    
            String email = "webmaster@itcast.net";
    
            if (email.matches(emailRegex)) {
                System.out.println(""" + email + "" can be matched");
            }
    
            else {
                System.out.println(""" + email + "" can not  be matched");
            }
    
        }
    
    }
    
    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1RegexDupWordFinder.java]
    package net.itcast.course.regex.basic.lesson1;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class RegexDupWordFinder {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String[] sentences = new String[] { "This is a normal sentence",
                    "I carelessly typed duplicate word word",
                    "This sentence contain no duplicate word words", };
    
            for (String sentence : sentences) {
                System.out.println("Sentence is:	" + sentence);
                if (containDupWord(sentence)) {
                    System.out.println("Duplicate word found!");
                    System.out.println("After processing:"
                            + removeDupWords(sentence));
                }
                System.out.println("");
            }
    
        }
    
        public static boolean containDupWord(String s) {
            String regex = Regexes.DUP_WORD_REGEX;
            Pattern p = Pattern.compile(regex);
            Matcher m = p.matcher(s);
            if (m.find()) {
                return true;
            } else {
                return false;
            }
        }
    
        public static String removeDupWords(String s) {
            String regex = Regexes.DUP_WORD_REGEX;
            return s.replaceAll(regex, "$1");
        }
    
    }
    
    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1RegexEmailValidate.java]
    package net.itcast.course.regex.basic.lesson1;
    
    public class RegexEmailValidate {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String[] emails = new String[] { "webmaster@itcast.net",
                    "web.master@itcast.net", "webmaster@it-cast.net",
                    ".webmaster@itcast.net", "webmaster@itcast",
                    "webmaster.itcast." };
    
            for (String email : emails) {
    
                System.out.println("Validating:	" + email);
    
                if (isValideEmail(email)) {
                    System.out.println("[" + email + "] is valid email");
                }
    
                System.out.println("");
            }
    
        }
    
        private static boolean isValideEmail(String s) {
            return s.matches(Regexes.EMAIL_REGEX);
        }
    
    }
    
    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1Regexes.java]
    package net.itcast.course.regex.basic.lesson1;
    
    public class Regexes {
        
        
        public static final String OCT_NUM_REGEX = "\d+";
        
        public static final String HEX_NUM_REGEX = "(?i)[0-9a-f]+";
        
        public static final String DUP_WORD_REGEX = "(?<=\b)(\w+)\s+\1(?=\b)";
        
        public static final String EMAIL_REGEX = "(?i)(?<=\b)[a-z0-9][-a-z0-9_.]+[a-z0-9]@([a-z0-9][-a-z0-9]+\.)+[a-z]{2,4}(?=\b)";
        
        public static final String HREF_LINK_REGEX = "(?i)<a\s+href\s*=\s*['"]?([^'"\s>]+)['"\s>]";
        
        public static final String NUMBER_BEAUTIFY_REGEX = "(?<=\d)(?=((\d{3})+\b))";
        
        public static final String USERNAME_REGEX = "(?<=\b)[a-z0-9][-a-z0-9_.]+[a-z0-9]";
        
        public static final String HOSTNAME_REGEX = "([a-z0-9][-a-z0-9]+\.)+[a-z]{2,4}(?=\b)";
    
    }
    
    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1RegexExtractor.java]
    package net.itcast.course.regex.basic.lesson1;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class RegexExtractor {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            String htmlCode = "<html>
    " +
            "<a href="www.itcast.net">ITCast</a>
    " +
            "<a href='http://www.itcast.net/portal/teachers'>ITCast</a>
    " +
            "<a href=http://www.itcast.net/portal>ITCast</a>
    " +
            "<a href  = http://www.itcast.net/portal/courses/>ITCast</a>
    " +
            "<a href    ="http://www.itcast.net/help">ITCast</a>
    " +
            "student@itcast.net
    " +
            "webmaster@itcast.net
    " +
            "teachers@itcast.net
    "
            + "</html>";
            
            System.out.println("Checking email");
            for(String email:extractEmail(htmlCode)) {
                System.out.println("Email:	" + email);
            }
            System.out.println("");
    
            System.out.println("Checking link");
            for(String link:extractLink(htmlCode)) {
                System.out.println("Link:	" + link);
            }
            System.out.println("");
        }
    
        public static List<String> extractEmail(String s) {
    
            List<String> result = new ArrayList<String>();
    
            Pattern p = Pattern.compile(Regexes.EMAIL_REGEX);
            Matcher m = p.matcher(s);
    
            while (m.find()) {
                result.add(m.group());
            }
    
            return result;
        }
    
        public static List<String> extractLink(String s) {
            List<String> result = new ArrayList<String>();
    
            Pattern p = Pattern.compile(Regexes.HREF_LINK_REGEX);
            Matcher m = p.matcher(s);
    
            while (m.find()) {
                result.add(m.group(1));
            }
    
            return result;
        }
    
    }
    
    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1RegexNumBeautifier.java]
    package net.itcast.course.regex.basic.lesson1;
    
    public class RegexNumBeautifier {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String[] numbers = new String[] { "1234567890", "123456", "123" };
    
            for (String number : numbers) {
                System.out.println(number + "
    " + beautifyNumber(number) + "
    ");
            }
    
        }
        
        
        
        
        
        
        
        
        
    
        public static String beautifyNumber(String s) {
            return s.replaceAll(Regexes.NUMBER_BEAUTIFY_REGEX, ",");
        }
    
    }
    
    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1RegexNumberValidate.java]
    package net.itcast.course.regex.basic.lesson1;
    
    public class RegexNumberValidate {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            String[] values = new String[] {"10", "32768", "99999", "ati", "90AF", "ffff"};
            
            for (String value : values) {
                
                System.out.println("Validating value:	" + value);
                
                if(isOctNumber(value)) {
                    System.out.println("[" + value + "] is valid Oct number");
                }
                
                if(isHexNumber(value)) {
                    System.out.println("[" + value + "] is valid Hex number");
                }
                
                System.out.println("");
            }
    
        }
        
        public static boolean isOctNumber(String s) {
            String validateRegex = Regexes.OCT_NUM_REGEX;
            return s.matches(validateRegex);
        }
        
        public static boolean isHexNumber(String s) {
            String validateRegex = Regexes.HEX_NUM_REGEX;
            return s.matches(validateRegex);
        }
    
    }
    
    [D:a精通正则表达式精通正则表达式第1讲(源码)src
    etitcastcourse
    egexasiclesson1TraditionalNumberValidate.java]
    package net.itcast.course.regex.basic.lesson1;
    
    public class TraditionalNumberValidate {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            String[] values = new String[] { "10", "32768", "99999", "ati", "90AF",
                    "ffff" };
    
            for (String value : values) {
    
                System.out.println("Validating value:	" + value);
    
                if (isOctNumber(value)) {
                    System.out.println("[" + value + "] is valid Oct number");
                }
    
                if (isHexNumber(value)) {
                    System.out.println("[" + value + "] is valid Hex number");
                }
    
                System.out.println("");
            }
    
        }
    
        public static boolean isOctNumber(String s) {
            boolean result = true;
            for (int i = 0, n = s.length(); i < n; i++) {
                char c = s.charAt(i);
                if (c == '0' || c == '1' || c == '2' || c == '3' || c == '4'
                        || c == '5' || c == '6' || c == '7' || c == '8' || c == '9') {
                    continue;
                } else {
                    result = false;
                    break;
                }
            }
            return result;
        }
    
        public static boolean isHexNumber(String s) {
            boolean result = true;
            for (int i = 0, n = s.length(); i < n; i++) {
                char c = s.charAt(i);
                if (c == '0' || c == '1' || c == '2' || c == '3' || c == '4'
                        || c == '5' || c == '6' || c == '7' || c == '8' || c == '9'
                        || c == 'a' || c == 'b' || c == 'c' || c == 'd' || c == 'e'
                        || c == 'f' || c == 'A' || c == 'B' || c == 'C' || c == 'D'
                        || c == 'E' || c == 'F') {
                    continue;
                } else {
                    result = false;
                    break;
                }
            }
            return result;
        }
    
    }
  • 相关阅读:
    POJ 2533 Longest Ordered Subsequence 最长上升子序列
    HDU 2059 龟兔赛跑 动态规划
    POJ 1328 Radar Installation 贪心
    动手动脑课后作业
    学生信息添加界面(连接数据库实现学生信息的存储)
    回文递归小测总结
    Java开学测试学生成绩管理系统
    动手动脑(第六周)
    Java课后总结原码、补码、反码
    如何在静态方法中访问实例对象
  • 原文地址:https://www.cnblogs.com/yasepix/p/7392325.html
Copyright © 2011-2022 走看看