首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

[正则]两问,该如何处理

2012-04-21 
[正则]两问1.从网页代码抓取某一节点内容,比如从bodydiv iddiv1div iddiv2/div/div/body

[正则]两问
1.从网页代码抓取某一节点内容,比如从<body><div id='div1'><div id='div2'></div></div></body>,如何获得div1的整个代码

2.查找介于word1和word2之间的字符数组。比如a_word1_text1_word2_word1_text2_word2中返回text1和text2

[解决办法]

C# code
            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);            }
[解决办法]

第一个问题:(?is)<div\s*id='div1'>(.*)</div> 取m.Groups[1].Value就行了
第二个问题:word1_(.*?)_word2 取m.Groups[1].Value就行了
总结你两个问题就是贪婪匹配和非懒惰匹配的用法
[解决办法]
探讨
1.从网页代码抓取某一节点内容,比如从<body><div id='div1'><div id='div2'></div></div></body>,如何获得div1的整个代码

2.查找介于word1和word2之间的字符数组。比如a_word1_text1_word2_word1_text2_word2中返回text1和text2

热点排行