正则表达式匹配a标签中内容
<div><atarget=\"_blank\"href=\"/result.aspx?q=search\"class=\"sso\">科学家1</a><atarget=...
<div>
<a target=\"_blank\" href=\"/result.aspx?q=search\" class=\"sso\">科学家1</a>
<a target=\"_blank\" href=\"/result.aspx?q=search\" class=\"sso\">科学家2</a>
<a target=\"_blank\" href=\"/result.aspx?q=search\" class=\"sso\">科学家2</a>
</div>
请问如何获取a标签中的内容【科学家1,科学家2,科学家3 】这几个内容呢,正则达式如何写 展开
<a target=\"_blank\" href=\"/result.aspx?q=search\" class=\"sso\">科学家1</a>
<a target=\"_blank\" href=\"/result.aspx?q=search\" class=\"sso\">科学家2</a>
<a target=\"_blank\" href=\"/result.aspx?q=search\" class=\"sso\">科学家2</a>
</div>
请问如何获取a标签中的内容【科学家1,科学家2,科学家3 】这几个内容呢,正则达式如何写 展开
3个回答
展开全部
问题的实现方法一,通过正则表达式的子模式功能
$pattern = '/<a[^>]*>(.*)<\/a>/i'; // 这是匹配的正则表达式,“(”和“)”匹配的内容,是子组匹配模式
preg_match_all($pattern, $subject, $matches); // 开始匹配,该函数会把匹配结果放入 $matches数组中,$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。
print_r($matches[1]);
实现方法二:如果不理解正则的子模式,可以使用正则匹配后截取字符的方式
$pattern = '/>.*</i'; // 这是匹配的正则表达式获取包含“>链接内容<”的内容
preg_match_all($pattern, $subject, $matches); //
print_r(substr($matches[0][0],1,10));
推荐使用方法一
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道这个内容可不可以为空哦,不为空的话
(?<=<a.*>).+(?=</a>)
(?<=<a.*>).+(?=</a>)
追问
(?).+(?=) 报错java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 8
追答
晕哦,你的JDK什么版本啊,零宽断言量词太长了啊,改下吧
(?).+(?=)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询