关于正则表达式的写法
<li><spanclass='zz'>1001</span><spanclass='dm2'><ahref='/finalpage/2011-08-17/5982767...
<li><span class='zz'>1001</span><span class='dm2'><a href='/finalpage/2011-08-17/59827676.PDF' target='_blank'>中国</a> <img align=absMiddle border=0 height=16 src='/imagesnew/Pdf.gif' width=16> (279K)</span>
<span class='time2'>2011-08-17 06:30</span></li>
我想对这个字符串进行分组查询,结果是:1001 中国 /finalpage/2011-08-17/59827676.PDF 2011-08-17 06:30
请问这个正则表达式如何写,求解
结果是:1001 /finalpage/2011-08-17/59827676.PDF 中国 2011-08-17 06:30 展开
<span class='time2'>2011-08-17 06:30</span></li>
我想对这个字符串进行分组查询,结果是:1001 中国 /finalpage/2011-08-17/59827676.PDF 2011-08-17 06:30
请问这个正则表达式如何写,求解
结果是:1001 /finalpage/2011-08-17/59827676.PDF 中国 2011-08-17 06:30 展开
2个回答
展开全部
.net正则表达式,代码如下:
void Main()
{
Regex r=new Regex("^<li><span[^>]*>(?<code>[^<]*).*<span[^>]*><a\\s+href=['\"][^'\"]*['\"][^>]+>(?<country>[^<]*)</a>[\\s\\S]*<span[^>]+>(?<time>[^<]+)</span></li>$");
string input=@"<li><span class='zz'>1001</span><span class='dm2'><a href='/finalpage/2011-08-17/59827676.PDF' target='_blank'>中国</a> <img align=absMiddle border=0 height=16 src='/imagesnew/Pdf.gif' width=16> (279K)</span>
<span class='time2'>2011-08-17 06:30</span></li>";
Match m=r.Match(input);
Console.WriteLine(m.Groups["code"].Value);
Console.WriteLine(m.Groups["country"].Value);
Console.WriteLine(m.Groups["time"].Value);
Console.Read();
}
void Main()
{
Regex r=new Regex("^<li><span[^>]*>(?<code>[^<]*).*<span[^>]*><a\\s+href=['\"][^'\"]*['\"][^>]+>(?<country>[^<]*)</a>[\\s\\S]*<span[^>]+>(?<time>[^<]+)</span></li>$");
string input=@"<li><span class='zz'>1001</span><span class='dm2'><a href='/finalpage/2011-08-17/59827676.PDF' target='_blank'>中国</a> <img align=absMiddle border=0 height=16 src='/imagesnew/Pdf.gif' width=16> (279K)</span>
<span class='time2'>2011-08-17 06:30</span></li>";
Match m=r.Match(input);
Console.WriteLine(m.Groups["code"].Value);
Console.WriteLine(m.Groups["country"].Value);
Console.WriteLine(m.Groups["time"].Value);
Console.Read();
}
追问
/finalpage/2011-08-17/59827676.PDF 能把这个链接给补充进去吧,完整的,谢谢
追答
void Main()
{
Regex r=new Regex("^]*>(?[^]*>[^'\"]*)['\"][^>]+>(?[^[\\s\\S]*]+>(?[^$");
string input=@"1001中国 (279K)
2011-08-17 06:30";
Match m=r.Match(input);
Console.WriteLine(m.Groups["code"].Value);
Console.WriteLine(m.Groups["href"].Value);
Console.WriteLine(m.Groups["country"].Value);
Console.WriteLine(m.Groups["time"].Value);
Console.Read();
}
展开全部
正则表达式为:
不使用前置后置运算符:
“>([^\<]+?)<”,括号里面的内容即查询内容
使用前置后置运算符:
“(?<\>)([^\<]+?)(?>\<)”
基本思路:
找到上一个“>”,从这之后开始,取字符直到遇上“<”位置,把不包括>”“和“<”在内的字符全部取出来。
不使用前置后置运算符:
“>([^\<]+?)<”,括号里面的内容即查询内容
使用前置后置运算符:
“(?<\>)([^\<]+?)(?>\<)”
基本思路:
找到上一个“>”,从这之后开始,取字符直到遇上“<”位置,把不包括>”“和“<”在内的字符全部取出来。
追问
大侠能否给个完整的答案,小弟能力有限,试了几次都不成功,期待您的回答。。。
并且上面是一个字符串,不是分开的,以...结束
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询