substrUrl 是链接的值,一般情况是能匹配,但是像这样 链接里带了很多空格的,就匹配不出来了,求高手看下这个正则怎么改进,使带空格时也能取出
代码如下:
Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");
MatchCollection mc = reg.Matches(substrre);
string substrUrl = string.Empty;
string substrText = string.Empty;
foreach (Match m in mc)
{
substrUrl = m.Groups["url"].Value;//得到href值
substrText = m.Groups["text"].Value.Trim();//得到<a><a/>中间的内容
}
Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(\s*?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");
href后面加上\s*
直接用xml类库来解析,获取attibute href。比正则简单
(?<url>[^'""\s>]+)
去掉[]里面的\s就行了吧
(?<url>[^'"">]+)
同意 showbo 去掉 \s就可以了
同意 showbo 去掉 \s就可以了