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

HTML 查寻某文字列 并读取其注释内容 用正则好吗

2013-08-09 
HTML 查找某文字列 并读取其注释内容用正则好吗?本帖最后由 sosoben 于 2013-08-05 09:22:09 编辑?xml ve

HTML 查找某文字列 并读取其注释内容 用正则好吗?
本帖最后由 sosoben 于 2013-08-05 09:22:09 编辑

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name='ocr-system' content='tesseract 3.02' />
  <meta name='ocr-capabilities' content='ocr_page ocr_carea ocr_par ocr_line ocrx_word'/>
 </head>
 <body>
  <div class='ocr_page' id='page_1' title='image "tamron.new.exp4.TIF"; bbox 0 0 547 70; ppageno 0'>
   <div class='ocr_carea' id='block_1_1' title="bbox 28 27 509 54">
    <p class='ocr_par' dir='ltr' id='par_1' title="bbox 28 27 509 54">
     <span class='ocr_line' id='line_1' title="bbox 28 27 509 54">
     <span class='ocrx_word' id='word_1' title="bbox 28 27 76 52">200</span> 
     <span class='ocrx_word' id='word_2' title="bbox 108 27 200 52">135100</span> 
     <span class='ocrx_word' id='word_3' title="bbox 228 27 260 52">70</span>
     </span>
    </p>
   </div>
  </div>
 </body>
</html>



内容如上, 我想查找其文字列“200” 的注释  title="bbox 28 27 76 52"  这一部分  应该怎么找好呢?
如果正则求正则表达式~~(不能与"bbox 108 27 200 52" 里面的200 混淆) HTML 正则 类


[解决办法]

string tempStr = File.ReadAllText(@"C:\Users\myx\Desktop\Test.txt", Encoding.GetEncoding("GB2312"));//读取txt
            string pattern = @"<span[^>]*?class=(['""]?)ocrx_word\1[^>]*?title=(['""]?)([^'""]+)\2[^>]*?>";

            string result = Regex.Match(tempStr, pattern).Groups[3].Value;//bbox 28 27 76 52

[解决办法]
string tempStr = File.ReadAllText(@"C:\Users\myx\Desktop\Test.txt", Encoding.GetEncoding("GB2312"));//读取txt
            string pattern = @"<span[^>]*?class=(['""]?)ocrx_word\1[^>]*?title=(['""]?)([^'""]+)\2[^>]*?>200</span>";
[解决办法]

string s = @"
    <?xml version=""1.0"" encoding=""UTF-8""?>
    <!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">
    <html xmlns=""http://www.w3.org/1999/xhtml"" xml:lang=""en"" lang=""en"">
        <head>
            <title></title>
            <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" />
            <meta name='ocr-system' content='tesseract 3.02' />
            <meta name='ocr-capabilities' content='ocr_page ocr_carea ocr_par ocr_line ocrx_word'/>
        </head>
        <body>
            <div class='ocr_page' id='page_1' title='image ""tamron.new.exp4.TIF""; bbox 0 0 547 70; ppageno 0'>
                <div class='ocr_carea' id='block_1_1' title=""bbox 28 27 509 54"">
                    <p class='ocr_par' dir='ltr' id='par_1' title=""bbox 28 27 509 54"">


                    <span class='ocr_line' id='line_1' title=""bbox 28 27 509 54"">
                        <span class='ocrx_word' id='word_1' title=""bbox 28 27 76 52"">200</span> 
                        <span class='ocrx_word' id='word_2' title=""bbox 108 27 200 52"">135100</span> 
                        <span class='ocrx_word' id='word_3' title=""bbox 228 27 260 52"">70</span>
                    </span>
                    </p>
                </div>
            </div>
        </body>
    </html>
";

Regex regex = new Regex(@"\<span(?:\s+(?<kv>\w+=(?:'[^']+'
[解决办法]
""[^""]+"")))+\>200\</span\>");
Match match = regex.Match(s);
if (match.Success)
{
    foreach (Capture capture in match.Groups["kv"].Captures)
    {
        if (capture.Value.IndexOf("title") >= 0)
        {
            Console.WriteLine(capture.Value.Substring(capture.Value.IndexOf("=") + 1));
        }
    }
}
Console.ReadKey();

热点排行