要求提取:
数学 7 0
语文 6 1
...
美术 0 21<map name="Res4446" id="Res4446" hidefocus="true" >
<area sgtitle="数学 Lv.7" shape="poly" coords="415,146,374,166,326,143,366,121" href="javascript:MM_xmlLoad('必修.detail&rid=0');" />
<area sgtitle="语文 Lv.6" shape="poly" coords="365,171,308,200,261,176,316,146" href="javascript:MM_xmlLoad('必修.detail&rid=1');" />
<area sgtitle="英语 Lv.6" shape="poly" coords="305,217,257,242,192,207,238,183" href="javascript:MM_xmlLoad('必修.detail&rid=2');" />
<area sgtitle="化学 Lv.6" shape="poly" coords="237,239,192,261,139,234,184,211" href="javascript:MM_xmlLoad('必修.detail&rid=3');" />
<area sgtitle="数学 Lv.6" shape="poly" coords="179,262,134,286,87,262,131,238" href="javascript:MM_xmlLoad('必修.detail&rid=4');" />
<area sgtitle="化学 Lv.6" shape="poly" coords="477,174,436,194,388,171,428,149" href="javascript:MM_xmlLoad('必修.detail&rid=5');" />
<area sgtitle="英语 Lv.6" shape="poly" c]]></html>
<html id="canvas"><![CDATA[oords="426,197,384,205,337,194,377,172" href="javascript:MM_xmlLoad('必修.detail&rid=6');" />
<area sgtitle="语文 Lv.6" shape="poly" coords="281,283,215,316,151,288,222,252" href="javascript:MM_xmlLoad('必修.detail&rid=7');" />
<area sgtitle="语文 Lv.6" shape="poly" coords="591,227,548,248,478,213,518,191" href="javascript:MM_xmlLoad('必修.detail&rid=8');" />
<area sgtitle="语文 Lv.6" shape="poly" coords="545,252,510,263,432,238,472,216" href="javascript:MM_xmlLoad('必修.detail&rid=9');" />
<area sgtitle="语文 Lv.6" shape="poly" coords="462,295,422,314,373,290,412,267" href="javascript:MM_xmlLoad('必修.detail&rid=10');" />
<area sgtitle="英语 Lv.7" shape="poly" coords="399,315,360,337,308,310,349,287" href="javascript:MM_xmlLoad('必修.detail&rid=11');" />
<area sgtitle="语文 Lv.6" shape="poly" coords="410,375,371,397,249,332,290,309" href="javascript:MM_xmlLoad('必修.detail&rid=12');" />
<area sgtitle="英语 Lv.7" shape="poly" coords="555,303,530,320,4]]></html>
<html id="canvas"><![CDATA[26,262,461,249" href="javascript:MM_xmlLoad('必修.detail&rid=13');" />
<area sgtitle="数学 Lv.7" shape="poly" coords="654,259,614,279,565,255,606,232" href="javascript:MM_xmlLoad('必修.detail&rid=14');" />
<area sgtitle="化学 Lv.6" shape="poly" coords="602,284,565,300,524,277,557,257" href="javascript:MM_xmlLoad('必修.detail&rid=15');" />
<area sgtitle="数学 Lv.6" shape="poly" coords="516,324,476,344,427,320,468,297" href="javascript:MM_xmlLoad('必修.detail&rid=16');" />
<area sgtitle="化学 Lv.6" shape="poly" coords="463,347,420,369,370,342,411,319" href="javascript:MM_xmlLoad('必修.detail&rid=17');" />
<area sgtitle="历史 Lv.0" shape="poly" coords="238,153,176,185,112,153,174,122" href="javascript:MM_xmlLoad('选修&bid=18');" />
<area sgtitle="生物 Lv.1" shape="poly" coords="512,366,575,400,638,368,576,337" href="javascript:MM_xmlLoad('选修&bid=19');" />
<area sgtitle="体育 Lv.1" shape="poly" coords="639,153,577,185,513,153,575,122" href=]]></html>
<html id="canvas"><![CDATA["javascript:MM_xmlLoad('选修&bid=20');" />
<area sgtitle="美术 Lv.0" shape="poly" coords="238,368,176,400,112,368,174,337" href="javascript:MM_xmlLoad('选修&bid=21');" />
<area sgtitle="选课表" shape="poly" coords="315,250,319,230,374,207,434,233,436,251,375,279" href="javascript:MM_xmlLoad('build.status');" />
</map>

解决方案 »

  1.   

    <area[^>]+>得到每一段area 对每一段分别应用下面的正则
    (?<=sgtitle=")[^"]+(?=")(?<=rid=).
      

  2.   

    正则表达式不是匹配一个字符串的么?什么时候支持匹配xml格式的多值关联了
      

  3.   

    为何不是用 xpath 呢?
      

  4.   

    我用下面的只能提取到 数学 Lv.7 后面的数字(detail&rid=0)不知道怎样提取?
     Dim re As New Regex("(?<=(<area sgtitle="")).+[^选课表](?=("" shape=""poly""))", RegexOptions.None)
      

  5.   


                string input = @"<map name=""Res4446"" id=""Res4446"" hidefocus=""true"" >
            <area sgtitle=""数学 Lv.7"" shape=""poly"" coords=""415,146,374,166,326,143,366,121"" href=""javascript:MM_xmlLoad('必修.detail&rid=0');"" />
            <area sgtitle=""语文 Lv.6"" shape=""poly"" coords=""365,171,308,200,261,176,316,146"" href=""javascript:MM_xmlLoad('必修.detail&rid=1');"" />
            <area sgtitle=""英语 Lv.6"" shape=""poly"" coords=""305,217,257,242,192,207,238,183"" href=""javascript:MM_xmlLoad('必修.detail&rid=2');"" />
            <area sgtitle=""化学 Lv.6"" shape=""poly"" coords=""237,239,192,261,139,234,184,211"" href=""javascript:MM_xmlLoad('必修.detail&rid=3');"" />
            <area sgtitle=""数学 Lv.6"" shape=""poly"" coords=""179,262,134,286,87,262,131,238"" href=""javascript:MM_xmlLoad('必修.detail&rid=4');"" />
            <area sgtitle=""化学 Lv.6"" shape=""poly"" coords=""477,174,436,194,388,171,428,149"" href=""javascript:MM_xmlLoad('必修.detail&rid=5');"" />
            <area sgtitle=""英语 Lv.6"" shape=""poly"" c]]></html>
            <html id=""canvas""><![CDATA[oords=""426,197,384,205,337,194,377,172"" href=""javascript:MM_xmlLoad('必修.detail&rid=6');"" />
            <area sgtitle=""语文 Lv.6"" shape=""poly"" coords=""281,283,215,316,151,288,222,252"" href=""javascript:MM_xmlLoad('必修.detail&rid=7');"" />
            <area sgtitle=""语文 Lv.6"" shape=""poly"" coords=""591,227,548,248,478,213,518,191"" href=""javascript:MM_xmlLoad('必修.detail&rid=8');"" />
            <area sgtitle=""语文 Lv.6"" shape=""poly"" coords=""545,252,510,263,432,238,472,216"" href=""javascript:MM_xmlLoad('必修.detail&rid=9');"" />
            <area sgtitle=""语文 Lv.6"" shape=""poly"" coords=""462,295,422,314,373,290,412,267"" href=""javascript:MM_xmlLoad('必修.detail&rid=10');"" />
            <area sgtitle=""英语 Lv.7"" shape=""poly"" coords=""399,315,360,337,308,310,349,287"" href=""javascript:MM_xmlLoad('必修.detail&rid=11');"" />
            <area sgtitle=""语文 Lv.6"" shape=""poly"" coords=""410,375,371,397,249,332,290,309"" href=""javascript:MM_xmlLoad('必修.detail&rid=12');"" />
            <area sgtitle=""英语 Lv.7"" shape=""poly"" coords=""555,303,530,320,4]]></html>
            <html id=""canvas""><![CDATA[26,262,461,249"" href=""javascript:MM_xmlLoad('必修.detail&rid=13');"" />
            <area sgtitle=""数学 Lv.7"" shape=""poly"" coords=""654,259,614,279,565,255,606,232"" href=""javascript:MM_xmlLoad('必修.detail&rid=14');"" />
            <area sgtitle=""化学 Lv.6"" shape=""poly"" coords=""602,284,565,300,524,277,557,257"" href=""javascript:MM_xmlLoad('必修.detail&rid=15');"" />
            <area sgtitle=""数学 Lv.6"" shape=""poly"" coords=""516,324,476,344,427,320,468,297"" href=""javascript:MM_xmlLoad('必修.detail&rid=16');"" />
            <area sgtitle=""化学 Lv.6"" shape=""poly"" coords=""463,347,420,369,370,342,411,319"" href=""javascript:MM_xmlLoad('必修.detail&rid=17');"" />
            <area sgtitle=""历史 Lv.0"" shape=""poly"" coords=""238,153,176,185,112,153,174,122"" href=""javascript:MM_xmlLoad('选修&bid=18');"" />
            <area sgtitle=""生物 Lv.1"" shape=""poly"" coords=""512,366,575,400,638,368,576,337"" href=""javascript:MM_xmlLoad('选修&bid=19');"" />
            <area sgtitle=""体育 Lv.1"" shape=""poly"" coords=""639,153,577,185,513,153,575,122"" href=]]></html>
            <html id=""canvas""><![CDATA[""javascript:MM_xmlLoad('选修&bid=20');"" />
            <area sgtitle=""美术 Lv.0"" shape=""poly"" coords=""238,368,176,400,112,368,174,337"" href=""javascript:MM_xmlLoad('选修&bid=21');"" />
            <area sgtitle=""选课表"" shape=""poly"" coords=""315,250,319,230,374,207,434,233,436,251,375,279"" href=""javascript:MM_xmlLoad('build.status');"" />
        </map>
    ";
                Regex re = new Regex(@"<area sgtitle=""(?<Course>[^ ]+) Lv\.(?<Lv>\d+)"".*?&[rb]id=(?<id>\d+)'");
                Match m = re.Match(input);
                while (m.Success)
                {
                    string output = String.Format("{0} {1} {2}",m.Groups["Course"].Value,m.Groups["Lv"].Value,m.Groups["id"].Value);
                    Console.WriteLine(output);
                    m = m.NextMatch();
                }
      

  6.   


    string pattern = " <.*Lv.(\\d)\" shape=\"poly\".*id=(\\d)";
      Regex regex = new Regex(pattern);            foreach (Match item in regex.Matches(text))
                {                Console.WriteLine(item.Groups[1].Value + "=" + item.Groups[2].Value);
                }
      

  7.   

    有点错
    string pattern = " <.*Lv.(\\d)\" shape=\"poly\".*id=(\\d{1,2})";加下1,2
      

  8.   

    [Quote=引用 5 楼 wackyboy 的回复:]
    正解 支持
      

  9.   

    1. 下载PilotEdit 2.6, http://topic.csdn.net/u/20090617/22/3b4e465d-c2cd-426d-9532-9865cdee8577.html
    新建一个文件,把数据拷贝到这个文件。<map name="Res4446" id="Res4446" hidefocus="true" >
            <area sgtitle="数学 Lv.7" shape="poly" coords="415,146,374,166,326,143,366,121" href="javascript:MM_xmlLoad('必修.detail&rid=0');" />
            <area sgtitle="语文 Lv.6" shape="poly" coords="365,171,308,200,261,176,316,146" href="javascript:MM_xmlLoad('必修.detail&rid=1');" />
    ...
            <area sgtitle="美术 Lv.0" shape="poly" coords="238,368,176,400,112,368,174,337" href="javascript:MM_xmlLoad('选修&bid=21');" />
            <area sgtitle="选课表" shape="poly" coords="315,250,319,230,374,207,434,233,436,251,375,279" href="javascript:MM_xmlLoad('build.status');" />
    </map>
    2. 点排序按钮,选择“比较由正则表达式定义的字符串”,输入下面的正则表达式和目标字符串:
    正则表达式:area sgtitle="* Lv.*" shape="poly"*id=*'*/
    目标字符串:%02 %04 %083. 点“将目标字符串拷贝到剪贴板”,即可将你要的数据拷贝到剪贴板:数学 7 0
    语文 6 1
    英语 6 2
    化学 6 3
    数学 6 4
    化学 6 5
    语文 6 7
    语文 6 8
    语文 6 9
    语文 6 10
    英语 7 11
    语文 6 12
    数学 7 14
    化学 6 15
    数学 6 16
    化学 6 17
    历史 0 18
    生物 1 19
    美术 0 21