0

我编写了一个 VB .Net 应用程序,它向用户询问 URL,然后应用程序将提取该 URL 的 HTML 内容并过滤掉除<td> </td>标签之间的任何内容之外的大多数内容。

因此,如果该网址的 HTML 是这样的

<html><body><table><tr><td>My content here</td></tr></table> </body> </html>

然后应用程序将简单地打印出: My content here

然而,问题是一些 URL<td></td>用字母的 ascii 代码而不是字母本身填充了这些,所以这里有一个例子:

<html><body><table><tr><td>">&#098;&#097;&#110;&#100;&#105;&#116;&#032;&#097;&#116;</td></tr></table> </body> </html>

所以我的程序将显示:

'&#098;&#097;&#110;&#100;&#105;&#116;'

但任何浏览器都会将上述内容显示为

bandit

我尝试使用 RegEx 将这些数字替换为它们各自的字符(使用 'Chr' 函数),但我失败了。这是我尝试过的:

Me.TextBox3.Text = Regex.Replace(htmlDoc, "&#\d\d\d;", chr("$&"))  

但这会出现错误。

我的问题是:如何替换所有出现的&#\d\d\d;with Chr(value of the \d\d\d that was matched earlier)

4

2 回答 2

2

这可以很容易地实现......通过使用 HTMLDecode 方法。

http://social.msdn.microsoft.com/Forums/vstudio/en-US/5cd2251d-1359-49ce-b6a2-7ca492d560a5/converting-nbsp-when-using-serverurldecode?forum=csharpgeneral

string subject = HttpUtility.HtmlDecode(HttpUtility.UrlDecode(Request.QueryString["subject"]));

这是 c#,但您可以轻松地将其转换为 vb.net。

于 2013-11-13T11:20:19.030 回答
0

您可以使用HttpUtility.HtmlDecode将 html 解码为纯字符串。

于 2013-11-13T11:23:48.460 回答