C# 如何从文本中删除字符实体号

C# 如何从文本中删除字符实体号,c#,regex,windows-phone-7,C#,Regex,Windows Phone 7,当我从提要中获取数据并通过正则表达式提取内容时,我的内容文本中仍然有(&o#8230;、&o#8211;、&o#8220等…[我在前2个中添加了o,以便它们可以重新格式化])。可悲的是,这些都是在源内容的饲料。 任何正则表达式,我自己尝试了一些,但没有成功:&#[0-9]{4} 我的代码: 受保护的覆盖无效OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { 尝试 { SyndicationItem sI

当我从提要中获取数据并通过正则表达式提取内容时,我的内容文本中仍然有(&o#8230;、&o#8211;、&o#8220等…[我在前2个中添加了o,以便它们可以重新格式化])。可悲的是,这些都是在源内容的饲料。 任何正则表达式,我自己尝试了一些,但没有成功:&#[0-9]{4}

我的代码:
受保护的覆盖无效OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
尝试
{        
SyndicationItem sItem=IsolatedStorageSettings.ApplicationSettings[“postovi”]作为SyndicationItem;//存储用户选择要显示的项目
List CC_List=IsolatedStorageSettings.ApplicationSettings[“ContentList”]作为列表;//标题和内容从提要中提取并放入列表中
PageTitle.Text=sItem.Title.Text;
PageTitle.FontSize=40;
foreach(CC_列表中的var项目)
{
int i;
if(item==PageTitle.Text)
{
i=CC_List.IndexOf(item,0);//index naslova u listi
字符串内容=CC_列表[i+1];
content=Regex.Replace(content,@“(?]*>)(?[\s\s]*>)(?]*>)”,string.Empty);

Match link=Regex.Match(内容@)(?你尝试过这个方法吗?这是System.Net程序集中包含的标准方法,我不能确切地说它是否也可以在WP7上使用。

尽管我发表了评论,但我意识到第二个选择可能是Html Agility Pack,它有一个WP7.5二进制文件。你可能会遇到在SO上发布的问题,并在这篇文章中得到回应,包括了c某些用于编译的库。我之所以提到它,是因为有一个非常强大的HtmlEncode类,它可以构建一个包含所有实体的字典。您可能无法直接使用deIdentize(),但您可以研究它是如何构建一些东西的,如果需要的话,可以将所有东西都去掉


我个人不想手工计算正则表达式,我会使用像这样为我构建的东西,然后循环遍历所有我认为相关的东西。当然,这是电话,所以你可能最好根据具体情况进行剥离,但如果提要不断变化,而你没有足够的样本数据来构建,这会变得很困难d from.

您可以尝试。基于它,System.Net.HttpUtility似乎位于它所在的位置。据我所知,Silverlight/WP7中通常没有使用System.Web命名空间,但很好,它们包含了他们意识到我们需要的内容。安装的agility pack将提供一个机会。但我不知道如何使用HA解析内容P很好。我得到了这个错误:错误1“System.Xml.XPath.IXPathNavigable”类型是在未被引用的程序集中定义的。您必须添加对程序集“System.Xml.XPath,Version=2.0.5.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”的引用。只编写了这段HAP代码:System.Xml.XPath=new HtmlDocument();doc.LoadHtml(content);您需要添加该引用。它类似于C:/Program Files/Microsoft SDK/Silverlight/7.1/bin。只需在文件系统中搜索System.Xml.Xpath.dllyeah。找到了。谢谢。但我的提要不是100%html。我怀疑HAP会有很大帮助,或者能够重新格式化特殊符号,如’(;减号)(我认为HAP的优势在于它不需要严格的HTML。实体词典似乎涵盖了所有内容。它非常庞大。对于您来说,最困难的部分可能是在代码中使用它们的内部函数,并让它去掉一些东西,因为我相信它们的函数只是转换为实体或从实体中转换出来。您可能还引入了框架可以利用,我为我对它缺乏深入了解而道歉。
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
      
        try
        {        
                          
            SyndicationItem sItem = IsolatedStorageSettings.ApplicationSettings["postovi"] as SyndicationItem; //stores the user chosed item to be displayed
            List <string> CC_List =  IsolatedStorageSettings.ApplicationSettings["ContentList"] as List<string>; //title and content are pulled from feed and put in list

            PageTitle.Text = sItem.Title.Text; 
            PageTitle.FontSize = 40;

            foreach (var item in CC_List)
            {
                int i;
              
                if (item == PageTitle.Text)
                {
                    i = CC_List.IndexOf(item, 0); //index naslova u listi
                    String content = CC_List[i + 1];
                    content = Regex.Replace(content, @"(?<startTag><\s*script[^>]*>)(?<content>[\s\S]*?)(?<endTag><\s*/script[^>]*>)", string.Empty);
                    Match link = Regex.Match(content, @"(?<=<img\s+[^>]*?src=(?<q>['""]))(?<url>.+?)(?=\k<q>)", RegexOptions.Singleline);
                    content = Regex.Replace(content, @"(?></?\w+)(?>(?:[^>'""]+|'[^']*'|""[^""]*"")*)>", string.Empty);
                    content = Regex.Replace(content, "&nbsp;", string.Empty);
                    Uri uri = new Uri(link.Value);
                    slika_clanak.Source = ImageFromUri(link.Value); // gets image
                    content = Regex.Replace(content, @"<p>.*</p>", string.Empty);
                    
                    clanak_textblock.Text = content.Trim(); // reads article text and puts it on screen
                                            
                }
              
            }