正则表达式匹配a标签中内容

<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 】这几个内容呢,正则达式如何写

给你一个例子,自己模仿着写吧,
匹配一个div标签的正则表达式:"<div>[^<]*</div>"这个基本可以满足,标签之间一般不会出现<,
如果要求严谨
完整的写法应该是 “<div>[^<]*[^d]*[^i]*[^v]*[^>]*</div>”这个可以都匹配。
真实可用,望采纳。
温馨提示:内容为网友见解,仅供参考
第1个回答  2022-11-20

问题的实现方法一,通过正则表达式的子模式功能

$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));

推荐使用方法一

第2个回答  2014-07-14
不知道这个内容可不可以为空哦,不为空的话
(?<=<a.*>).+(?=</a>)追问

(?).+(?=) 报错java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 8

追答

晕哦,你的JDK什么版本啊,零宽断言量词太长了啊,改下吧
(?).+(?=)

本回答被提问者采纳

正则表达式能匹配a标签之间所有内容
str=str.replace(\/<\/g,'<');str=str.replace(\/>\/g,'>');var reg=\/<a[^>]*>.*(?=<\\\/a>)<\\\/a>\/gi;alert(str.replace(reg,''));

正则提取a标签中的值
正则表达式:<a .*?href=['"](.*?)['"].*?>(.*?)<\/a> 整个正则匹配的是一个a标签,第1组匹配的href的值,第2组匹配的你要的a标签的值 java示例:import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { ...

怎么用php正则获得a标签内的文字啊
preg_match_all preg_match 这里使用preg_match_all,代码如下:subject = '<a href="xxx.php">abc测试<\/a>'; \/\/ 假设这是需要匹配的字符串$pattern = '\/<a href="[^"]*"[^>]*>(.*)<\\\/a>\/'; \/\/ 这是匹配的正则表达式preg_match_all($pattern, $subject, $matches); ...

js 正则获取a标签内容
js正则表达式 \/<a.*?>(.*?)<\\\/a>\/ig 完整的Javascript正则匹配a标签内容的程序如下 <script type=text\/javascript> var str = "<a onclick=\\"statistics.packagename('com.ys137.app')\\" href=\\"javascript: void(0);\\">com.ys137.app<\/a><a onclick=\\"statistics.keyword('3')...

python匹配多个a标签中的内容
]这样的情况,用findall返回的正好是list。正则表达式的意义:(?<=XXX) 表示前面的内容是XXX,但结果中不包含;.*?表示匹配0到多个任意字符,但是匹配尽量短的;(?=YYY)表示后面的内容是YYY,但结果中不包含。注意:XXX和YYY的长度必须是固定的。要是处理的标签多的话,用BeautifulSoup吧,方便些。

正则表达式匹配所有的a标签
]*(\\"|\\')\\s*)*\\s*\\>.*\\<\\\/a\\>$\/i;alert(ep5.test(s4));这个匹配只是验证,最终结果返回true和false,这个字符串是否具备合法性,搞不清楚你要的查找,还是验证 以上正则可以匹配 <a><\/a>也可以匹配任何标准属性的a 包括自定义标签 如果你要的是查找,只需要复制表达式,调用exec ...

java 正则表达式提取<a><\/a>标签中值
String str = "<a href=\\",5094.1\\">weblogic日志编码大全<\/a>"; Pattern p = Pattern.compile("<a[^>]*>([^<]*)<\/a>"); Matcher m = p.matcher(str); while(m.find()) { System.out.println(m.group(1)); }特意帮你写了一段 若不能解决,请追问,我继...

用正则表达式怎样获取a标签的href里面的值,急,在线等!
用js 代码如下:var pat=\/href="(.*)"\/;pat.exec('<a href="sss.com"')["href="sss.com"", "sss.com"]你用的时间注意 单引号和双引号的问题

帮忙写个正则表达式,取出某个a标签的显示文字...应该很简单
Java正则表达式:<a\\\\s+href=\\"\/mo\/q---[^>]+?>([^<]+?)< 完整的程序如下:import java.util.regex.Matcher;import java.util.regex.Pattern;public class KKK { public static void main(String[] args) { String s="<a href=\\"\/mo\/q---E7402DB423BF9D950C121356C56A5856%3AFG%...

java<a>标签的href属性指向的地址(正则表达式)
你要去的<a>标签中href里面的地址?\/^<a\\s+href=('.*'|".*")(\\s|>)$\/这个是匹配标签a的。匹配href之后跟单引号或者双引号,然后是空白符或者右尖括号。你先取的这些字符串。然后替换字符串,把href前后的替掉,只留地址。

相似回答