繁体   English   中英

如何从<a>html 标签中</a>提取超链接文本<a>?</a>

[英]How to extract the hyperlink text from a <a> html tag?

给定一个包含'blabla <a href="address">text</a> blabla'的字符串,我想从中提取'text'
regexp doc 建议使用'<(\\w+).*>.*</\\1>'表达式,但它提取了整个<a> ... </a>东西。
当然,我可以像这样继续使用strfind

line = 'blabla <a href="address">text</a> blabla';
atag = regexp(line,'<(\w+).*>.*</\1>','match', 'once');
from = strfind(atag, '>');
to = strfind(atag, '<');
text = atag((from(1)+1):(to(2)-1))

,但是,我可以使用另一个表达式立即查找text吗?

您可以在 Matlab 中使用extractHTMLText函数,您可以在以下链接中阅读它。 获得所需输出的示例:

line = 'blabla <a href="address">text</a> blabla';
l = split(extractHTMLText(line), ' ');
l{2}

如果您不想使用内置函数,您可以按照尼克的建议使用正则表达式

line = 'blabla <a href="address">text</a> blabla';
[atag,tok] = regexp(line,'<(\w+).*>(.*?)</\1>','match','tokens'); 
t = tok(1,1){1};
t{2}

你会得到想要的输出

您可以简单地使用Group

您的模式更新将是这样的:

<(\w+).*>(.*)<\/\1>

这个包括所有标签:

<.*>(.*)<.*>

正则表达式101

如果你正在使用 JQuery,试试这个。 不需要正则表达式。 但是,如果 DOM 很大,这可能会对性能产生负面影响。

$jqueryobj = $(line);
var text = $jqueryobj.find("a").text();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM