动态正则表达式生成,用于数据馈送中可预测的重复字符串模式

wav*_*vey 5 c# regex string algorithm text

我目前正在尝试处理一些我无法控制的数据源,我在C#中使用正则表达式来提取信息.

数据馈送的发起者从数据库中提取基本行数据(如产品名称,价格等),然后在英文文本行中格式化该数据.对于每一行,一些文本是重复的静态文本,一些是从数据库中动态生成的文本.

例如

松下电视免费蓝光播放器

索尼电视免费DVD播放机+票房DVD

Kenwood Hi-Fi部门提供20美元的亚马逊MP3优惠券

因此,此实例中的格式为:带有FREEGIFT的PRODUCT.

PRODUCTFREEGIFT是每行的动态部分,"with"文本是静态的.每个Feed有大约2000行.

创建正则表达式以提取动态部分是微不足道的.

问题在于,控制数据源的营销方式一直在改变静态文本的结构,通常是两周一次,所以本周我可能会:

如果您今天订购,全新松下电视和免费蓝光播放器

如果您今天订购,全新索尼电视和免费DVD播放机+票房DVD

如果您今天订购,全新的Kenwood Hi-Fi设备和20美元的亚马逊MP3优惠券

下周它可能会有所不同,所以我必须继续修改我的正则表达式......

你会怎么处理这个?

是否有算法来确定重复的字符串行中的静态和可变文本?如果是这样,那么使用这种算法的输出以编程方式创建动态正则表达式的最佳方法是什么?

感谢您的帮助或建议.

Ale*_*dre 0

我认为使用算法是可能的,但是与简单地执行正则表达式相比,编写它所花费的时间可能不值得。

但是,您可以加快更改过程。如果您不将正则表达式字符串放在应用程序中,而是将其放在文本文件中的某个位置,则不必在每次发生更改时重新编译和重新部署所有内容,只需编辑文本文件即可。

根据您的项目规模和实施情况,这可以为您节省大量时间。