Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C#字符串在HTML中搜索特定文本并标记文本的最佳方法是什么?_C#_Html_String - Fatal编程技术网

用C#字符串在HTML中搜索特定文本并标记文本的最佳方法是什么?

用C#字符串在HTML中搜索特定文本并标记文本的最佳方法是什么?,c#,html,string,C#,Html,String,在C#string变量中搜索HTML以查找特定单词/短语并用突出显示标记(或包装)该单词/短语的最佳方法是什么 谢谢 Jeff正则表达式将是我的方式 搜索字符串时,需要查找正则表达式。至于标记它,一旦你有了子字符串的位置,它应该足够简单,可以使用它来添加一些东西来包装短语。如果你使用的HTML与XHTML兼容,你可以将其作为XML文档加载,然后使用XPath/XSL——冗长但有点优雅 我过去使用的一种方法是将凌乱的HTML转换为XHTML,然后使用XSL/XPath将屏幕内容刮到数据库中,以创建

在C#string变量中搜索HTML以查找特定单词/短语并用突出显示标记(或包装)该单词/短语的最佳方法是什么

谢谢


Jeff正则表达式将是我的方式

搜索字符串时,需要查找正则表达式。至于标记它,一旦你有了子字符串的位置,它应该足够简单,可以使用它来添加一些东西来包装短语。

如果你使用的HTML与XHTML兼容,你可以将其作为XML文档加载,然后使用XPath/XSL——冗长但有点优雅

我过去使用的一种方法是将凌乱的HTML转换为XHTML,然后使用XSL/XPath将屏幕内容刮到数据库中,以创建反向内容管理系统


正则表达式可以做到这一点,但一旦您尝试剥离标记、图像名称等以消除误报,则可能会变得复杂。

在简单的情况下,正则表达式可以做到

字符串输入=“tttttt gotttttt”
字符串输出=Regex.Replace(输入,“go”,“$0

将产生:“ttttttgotttttttt”

但当你说HTML时,如果你指的是最终呈现的文本,那就有点混乱了。假设您有以下HTML:

要突出显示“Book”一词,您需要适当的HTML呈现程序的帮助。为了简化,可以先删除所有标记,只保留内容,然后进行通常的替换,但这样做感觉不对。

您可以在SourceForge.net上查看使用开源项目。 通过这种方式,您可以通过编程方式操作文本,而不是依赖正则表达式

我喜欢使用非常易于使用的工具,尽管最近没有太多更新,但它仍然可用。例如抓取所有链接

HtmlWeb client = new HtmlWeb();
HtmlDocument doc = client.Load("http://yoururl.com");            
HtmlNodeCollection Nodes = doc.DocumentNode.SelectNodes("//a[@href]");         

foreach (var link in Nodes)
{                
    Console.WriteLine(link.Attributes["href"].Value);
}

它处于alpha状态,最近一次更新是在2005年,这意味着不再维护。