内容如下:
劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳
<a class="ff" id="dd0" href="http://www.baidu.com/" target="_blank" name="dttl">
劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳
<a class="ff" id="dd1" href="http://www.google.com/" target="_blank" name="dttl">
劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳
请问用c#书写 正则表达式 查找到 http://www.baidu.com/ 和 http://www.google.com/
string regexString=@"(?<=<a.*?class="ff"?.*?id="dd\d+?".*?href=")(.*?)(?=")";上面的表达式可以,结果如下图:
不知道是不是你想要的结果,不过这个表达式参class和id的顺序的有要求的,你可以把那两部分换成变量来替换就可以了,还有其它的需要,给我短消息就可以了!
希望能拿到分,谢!
唉!郁闷了我一把,?=和?:没分清!下面的代码可供测试!
string str2 = "劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳<a class=\"ff\" id=\"dd0\" href=\"http://www.baidu.com/\" target=\"_blank\" name=\"dttl\">劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳<a class=\"ff\" id=\"dd1\" href=\"http://www.google.com/\" target=\"_blank\" name=\"dttl\">劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳";
Regex regex2 = new Regex(@"http://www\.(?:google|baidu)\.com/", RegexOptions.Multiline | RegexOptions.IgnoreCase);
List<string> list2 = new List<string>();
foreach (Match match in regex2.Matches(str2))
{
if (match.Success)
list2.Add(match.Value);
}
唉!最新需求修改,刚刚发布了个版本,但是方法太傻,俺使用了MatchEvaluator来做。完事后发现还有简单的,代码如下:
string str2 = "劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳<a class=\"ff\" id=\"dd0\" href=\"http://www.baidu.com/\" target=\"_blank\" name=\"dttl\">劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳<a class=\"ff\" id=\"dd1\" href=\"http://www.google.com/\" target=\"_blank\" name=\"dttl\">劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳";
Regex regex2 = new Regex(@"<a class=\""ff\"" id=\""dd[0-9]{1}\"" href=\""http://www\.(?:google|baidu)\.com/", RegexOptions.Multiline | RegexOptions.IgnoreCase);
List<string> list2 = new List<string>();
Regex regex3 = new Regex(@"<a class=\""ff\"" id=\""dd[0-9]{1}\"" href=\""");
foreach (Match match in regex2.Matches(str2))
{
if (match.Success)
{
list2.Add(regex3.Replace(match.Value, ""));
}
}
注意一点这个对class和id 以及href的顺序有要求,如果想要没有要求的,就需要对正则表达式扩展下。和目前写法一样,只是顺序改变就好!