我从 html 代码中提取字符串时遇到问题(这基本上是正则表达式的问题)。这是代码:
string wheretosearch = @"
<td class=""name"">
<div>
<a href=""/addr1.html"" class=""link "">
<span>Title1</span>
</a></td>
[some code]
<td class=""name"">
<div>
<a href=""/addr2.html"" class=""link "">
<span>Title2</span>
</a></td>";
我想提取标签之间的标题。我的问题是我不能将未知数量的字符放入正则表达式(.* td class=""name"" 之后的部分):
<td class=""name"">.*<span>(?<title>.*)</span>
简单地说:我希望正则表达式找到<td class=""name"">
,然后在未知数量的字符后找到第一次出现的<span>
,然后取第一个<span>
和之间的值</span>
。
它实际上做了什么,它只需要最后一次出现<span>
并给出最后一个标题。
编辑:
好的,除了 HTML 问题,问题是:我有字符串:
“这是一个文本:NICE。这是一个很棒的文本:NICE TOO。”
我想取“This”,然后是未知数量的字符,然后是“:”和“。”之间的字符串。如何做到这一点?
当然,我对那个复杂表达式的每次出现都感兴趣,所以输出将是集合中的“NICE”和“NICE TOO”。
对于我的表达式,就像"This.*(?<title>.*)."
我只得到“NICE TOO”字符串一样,正如@urlreader 提到的,它找到了最大长度匹配的字符串。