[正则]两问
1.从网页代码抓取某一节点内容,比如从<body><div id='div1'><div id='div2'></div></div></body>,如何获得div1的整个代码
2.查找介于word1和word2之间的字符数组。比如a_word1_text1_word2_word1_text2_word2中返回text1和text2
[解决办法]
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就行了
总结你两个问题就是贪婪匹配和非懒惰匹配的用法
[解决办法]