zoukankan      html  css  js  c++  java
  • 正则表达式 <A HREF>

    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class RegexDemo {

        /**
         * @param args
         * @throws FileNotFoundException
         */
        public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            int count = 0;
            String fileName = "D:\\Users\\Administrator\\Desktop\\forRegex.txt";
            StringBuffer buffer = new StringBuffer(10240);
            FileReader fr = new FileReader(fileName);
            BufferedReader br = new BufferedReader(fr);
            while (br.ready()) {
                // System.out.println();
                buffer.append(br.readLine());
            }
            // 在HTML中取<a>到</a>
            // String regex =
    //"(<a\\s+([^>h]|h(?!ref\\s))*href[\\s+]?=[\\s+]?('|\"))([^(\\s+|'|\")]*)([^>]*>)(.*?)</a>";
            // 在<a></a>中取href
            // String
            // regex="(?<=[\\s+]?href[\\s+]?=[\\s+]?('|\")?)[^(\"|')>]+?(?=\"|')";
            // 在<a></a>中同时取href与名称,使用group(4)与group(1)
            // String regex="((?<=[\\s+]?href[\\s+]?=[\\s+]?('|\")?)[^\"|'>]+?(?=\"|'))(.+?)?((?<=>)(.+?)?(?=</a>))";
            // 在<a></a>中取包含'登录'的链接
            //String regex = "((?<=[\\s+]?href[\\s+]?=[\\s+]?('|\")?)[^\"|'>]+?(?=\"|'))(.+?)?((?<=>).*登录.*(?=</a>))";
            //在html中同时取href与名称,使用group(3)与 group(5)
            String regex="<a\\s+([^>h]|h(?!ref\\s))*(?<=[\\s+]?href[\\s+]?=[\\s+]?('|\")?)([^\"|'>]+?(?=\"|'))(.+?)?((?<=>)(.+?)?(?=</a>))";
            Pattern p = Pattern.compile(regex);

            Matcher m = p.matcher(buffer.toString());

            System.out.println("INPUT: " + buffer);
            System.out.println("REGEX: " + regex + "\r\n");
            while (m.find()) {

                System.out.println(m.group(3) + ":" + m.group(5));
                //System.out.println(m.group(0) );
                count++;
            }
            if (count == 0) {
                System.out.println("NO MATCHES: ");
            }
            System.out.println("TOTAL:" + count);
        }

    }

    //BUG还是有的,花了一晚上时间

  • 相关阅读:
    阿里SRE体系如何支撑24小时峰值压力、220+个国家“剁手党”?
    《算法技术手册》一2.4.4 线性算法的性能
    8月7日云栖精选夜读:五分钟读懂SIGIR 2017前沿技术研究成果
    作业9 DFA最小化,语法分析初步
    作业8 非确定的自动机NFA确定化为DFA
    作业7 正规式、正规文法与自动机
    作业6 正规文法与正规式
    作业5 词法分析程序的设计与实现
    作业4 文法和语言总结与梳理
    作业3 语法树,短语,直接短语,句柄
  • 原文地址:https://www.cnblogs.com/yangyh/p/1719693.html
Copyright © 2011-2022 走看看