如何替换
<a href="page">Text</a>
与
<a href="page.html">Text</a>
其中page
和Text
可以是任何字符集吗?
答案 0 :(得分:1)
您不应该使用正则表达式解析HTML。有关详细信息,请参阅 this question 的答案。
UPD:正如TrueWill指出的那样,您可能希望使用Html Agility Pack进行替换。但是在一些特殊情况下,FailedDev提出的正则表达式会做,虽然我会略微修改它看起来像这样:@"(?<=<a\b[^>]*?\bhref\s*=\s*(['""]))(.*)(?=\1.*?>)"
(在\b
之后添加<a
以排除其他标签“A”)。
答案 1 :(得分:1)
这会奏效。请注意,我只捕获href内的任何内容。
resultString = Regex.Replace(subjectString, @"(?<=<a[^>]*?\bhref\s*=\s*(['""]))(.*)(?=\1.*?>)", "$2.html");
将.html附加到它上面。您可能希望根据自己的需要进行更改。
编辑:在火焰战争开始之前。是的,它适用于您的具体示例,而不适用于互联网上所有可能的HTML。