读书人

100分求解。net正则取内容采摘用的

发布时间: 2012-08-31 12:55:03 作者: rapoo

100分求解。.net正则取内容,采集用的。

html内容如下

HTML code
  <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030">  .  .  .  .</head><body> <script>   var imgdata = {                "queryEnc": "%D7%C0%C3%E6%B1%DA%D6%BD",                "displayNum": 9921457,                "bdIsClustered": "1",                "listNum": 2000,                "bdFmtDispNum": "9921457",                "thumbURL": "http://t1.baidu.com/it/u=3917541605,2488848911&fm=0&gp=0.jpg",                "bdSearchTime": "0.043"                 },                 {                "queryEnc": "%D7%C0%C3%E6%B1%DA%D6%BD",                "displayNum": 9921457,                "bdIsClustered": "1",                "listNum": 2000,                "bdFmtDispNum": "9921457",                "thumbURL": "http://t1.baidu.com/it/u=3917541605,2488848911&fm=0&gp=0.jpg",                "bdSearchTime": "0.043"                 }      </script></body>


我想取得thumbURL, 怎么取?求解。正则我稀烂的。

[解决办法]
C# code
            StreamReader reader = new StreamReader("c:\\1.txt",Encoding.Default);            string source = reader.ReadToEnd();            Regex reg = new Regex(@"(?is)(?<=""thumbURL""[^""]*?)""http:.*?""");            MatchCollection mc = reg.Matches(source);            foreach (Match m in mc)            {                MessageBox.Show(m.Value);            }
[解决办法]
string source = "{\r\n \"queryEnc\": \"%D7%C0%C3%E6%B1%DA%D6%BD\",\r\n \"displayNum\": 9921457,\r\n \"bdIsClustered\": \"1\",\r\n \"listNum\": 2000,\r\n \"bdFmtDispNum\": \"9921457\",\r\n \"thumbURL\": \"http://t1.baidu.com/it/u=3917541605,2488848911&fm=0&gp=0.jpg\",\r\n \"bdSearchTime\": \"0.043\"\r\n },\r\n {\r\n \"queryEnc\": \"%D7%C0%C3%E6%B1%DA%D6%BD\",\r\n \"displayNum\": 9921457,\r\n \"bdIsClustered\": \"1\",\r\n \"listNum\": 2000,\r\n \"bdFmtDispNum\": \"9921457\",\r\n \"thumbURL\": \"http://t1.baidu.com/it/u=3917541605,2488848911&fm=0&gp=0.jpg\",\r\n \"bdSearchTime\": \"0.043\"\r\n }\r\n";





var matches= Regex.Matches(source, @"(?is)(?<=thumbURL\"":\s*\"")[^""]+(?="")");
foreach(Match m in matches)
{
Response.WriteLine(m.Value);
}
[解决办法]
(?i)(?<=thumbURL[^:]+?\s*?['""])[^'""]+
[解决办法]

C# code
Regex reg = new Regex(@"(?i)(?<=""thumbURL""\s*:\s*"")[^""]*(?="")");MatchCollection mc = reg.Matches(yourStr);foreach (Match m in mc){    richTextBox2.Text += m.Value + "\n";}/*------输出-----http://t1.baidu.com/it/u=3917541605,2488848911&fm=0&gp=0.jpghttp://t1.baidu.com/it/u=3917541605,2488848911&fm=0&gp=0.jpg*/ 

读书人网 >asp.net

热点推荐