1.从网页代码抓取某一节点内容,比如从<body><div id='div1'><div id='div2'></div></div></body>,如何获得div1的整个代码2.查找介于word1和word2之间的字符数组。比如a_word1_text1_word2_word1_text2_word2中返回text1和text2

解决方案 »

  1.   


                string source = "a_word1_text1_word2_word1_text2_word2";
                Regex reg = new Regex("(?<=(word1_))[.\\s\\S]*?(?=(_word2))", RegexOptions.Multiline | RegexOptions.Singleline);
                MatchCollection mc = reg.Matches(source);
                foreach (Match m in mc)
                {
                    MessageBox.Show(m.Groups["value"].Value);
                }
      

  2.   


                string source = "a_word1_text1_word2_word1_text2_word2";
                Regex reg = new Regex("(?<=(word1_))[.\\s\\S]*?(?=(_word2))", RegexOptions.Multiline | RegexOptions.Singleline);
                MatchCollection mc = reg.Matches(source);
                foreach (Match m in mc)
                {
                    MessageBox.Show(m.Groups["value"].Value);
                }
      

  3.   


    第一个问题:(?is)<div\s*id='div1'>(.*)</div>    取m.Groups[1].Value就行了
    第二个问题:word1_(.*?)_word2     取m.Groups[1].Value就行了
    总结你两个问题就是贪婪匹配和非懒惰匹配的用法
      

  4.   

    1. (?is)<div[^>]*?id=(['"\s]?)div1\1[^>]*?>.*?</div>2. (?i)(?<=word1_)[^_]+(?=_word2)