一个页面标题和过滤输出的解决方案(下)

简介:

上一篇说到:为了可扩展与方便大伙,我定义了一个抽象类,先实现了三个正则用于截取标题,说明,和关键字。

抽象类代码简洁如下:

复制代码
public abstract class ReplaceTextListBase
    {
        ///  < summary >
        /// 将被返回的替换文本集合列表
        ///  </ summary >
        public Dictionary < string , string > replaceTextList = new Dictionary < string , string >();
        ///  < summary >
        /// 获取当前请求页面的url信息
        ///  </ summary >
        public Uri PageUrl { get { return HttpContext.Current.Request.Url; } }
        ///  < summary >
        /// 获取html的title的正则
        ///  </ summary >
        public string TitleRegex { get { return " < title. * >.* </ title >"; } }
        public string TitleFormat(string titleText)
        {
            return " < title >" + titleText + " </ title >";
        }
        ///  < summary >
        /// 获取html的Description的正则
        ///  </ summary >
        public string DescriptionRegex { get { return " < meta [^< >]+name=[\"\']description[^ <>]*[/]>"; } }
        public string DescriptionFormat(string descriptionText)
        {
            return " < meta  id =\"description\"  name =\"description\"  content =\""  + descriptionText + "\"  />";
        }
        ///  < summary >
        /// 获取html的Keyword的正则
        ///  </ summary >
        public string KeywordRegex { get { return " < meta [^< >]+name=[\"\']keywords[^ <>]*[/]>"; } }
        public string KeywordFormat(string keywordText)
        {
            return " < meta  id =\"keywords\"  name =\"keywords\"  content =\""  + keywordText + "\"  />";
        }
        ///  < summary >
        /// 复写此方法,调用replaceTextList.add()方法后,return replaceTextList;
        ///  </ summary >
        ///  < returns ></ returns >
        public virtual Dictionary < string , string > GetReplaceTextList()
        {
            return replaceTextList;
        }
    }

复制代码

 

 

抽象类后,留下一个虚方法GetReplaceTextList(), 这是重点

现在看一下我的示例中的子类的实现,继承自抽象类,复写虚方法:

复制代码
public  class ReplaceTextList:ReplaceTextListBase
{
         public  override System.Collections.Generic.Dictionary< stringstring> GetReplaceTextList()
        {
            replaceTextList.Add(TitleRegex,TitleFormat( " TitleRegex "));
            replaceTextList.Add(DescriptionRegex,DescriptionFormat( " descriptionttest "));
            replaceTextList.Add(KeywordRegex,KeywordFormat( " keywordadfdfdf "));
             return replaceTextList;
        }
}
复制代码

 

代码解析:

例子中的子类实现很简单,就复写了一个虚方法,最终页面的输出标题为:TitleRegex。其它两个同理。
如果要替换其它或过滤文件,只要写多几个add方法把要替换的文字给替换掉就行了,具体也可以结合下数据库或其它文件操作

 

另外说明:

例子上,直接就定死了标题输出为:TitleRegex,这里可以结合自己的需要,替换成任意字符串。

提示:抽象类里还留下了PageUr吧,可以根据Url查出Title和description和keyword来实现自己的扩展。

 

 

另外给出一些我早期实现的思路:

建数据库表,对url主机头进行分类管理,自己定义替换字符等,最后查询与替换。

相关文章
|
5天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1119 2
|
4天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
617 11
|
14天前
|
人工智能 运维 安全
|
5天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
309 0
|
12天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
822 23
|
5天前
|
缓存 供应链 监控
VVIC seller_search 排行榜搜索接口深度分析及 Python 实现
VVIC搜款网seller_search接口提供服装批发市场的商品及商家排行榜数据,涵盖热销榜、销量排名、类目趋势等,支持多维度筛选与数据分析,助力选品决策、竞品分析与市场预测,为服装供应链提供有力数据支撑。

热门文章

最新文章