使用带有html字符串的regexp来提取文本

时间:2013-07-09 19:49:52

标签: regex matlab

我有以下html字符串: <a href="http://www.nndc.bnl.gov/nsr/fastsrch_act2.jsp?aname=F.V.Adamian">F.V.Adamian</a>, <ahref="http://www.nndc.bnl.gov/nsr/fastsrch_act2.jsp?aname=G.G.Akopian">G.G.Akopian</a>

我想形成一个带有作者姓名的纯文本字符串,以便它看起来像(我可以稍后调整标点符号):

F.V.Adamian,G.G.Akopian。

我正在尝试在Matlab中使用'regexp'。当我执行以下操作时: regexpi(htmlstring,'">.*</a>','match')

我明白了:

">F.V.Adamian</a>, <a href="http://www.nndc.bnl.gov/nsr/fastsrch_act2.jsp?aname=G.G.Akopian">G.G.Akopian</a>,

为什么呢?我试图让它连续输出(因此我没有使用'一次'运算符)“&gt;之间的所有字符,这是作者的名字。它适用于第一个但不适用于第二个.I很高兴截断“&gt;并使用regexprep(regexpstring,'','')。

我看到regexprep(htmlstr, '<.*?>','')可以正常工作并做我想做的事。但我不明白......

1 个答案:

答案 0 :(得分:2)

.*??告诉.*懒惰而不是贪婪。默认情况下,.*会尝试匹配最大的内容。当你添加?时,它代替了最小的东西

source