文本解析问题-如何正确解析

本文关键字:何正确 问题 文本 | 更新日期: 2023-09-27 18:26:02

我有以下文本,我试图通过将所有类别放在自己的行上来"整理"它们。我不知道如何使用regex或任何其他方法。

名称:品牌SLES重新定位:(不可重新定位)

版本:11供应商:SUSE LINUX Products GmbH,Nuernberg,Germany

发布:3.20.30构建日期:2012年2月3日星期五

安装日期:2014年9月24日星期三构建主机:gubaidulina

组:系统/Fhs源RPM:branding-SLES-13-20.30.src.RPM

尺寸:1659许可证:BSD 3条款

签名:RSA/82012年2月3日星期五,密钥ID e3a5c360307e3d54

包装商:http://bugs.opensuse.org

摘要:SUSE Linux企业服务器品牌文件

应该是

名称:品牌SLES

重新定位:(不可重新定位)

版本:11供应商:SUSE LINUX

Products GmbH,德国纽伦堡

版本:3.20.30

建造日期:2012年2月3日星期五安装日期:2014年9月24日星期三

构建主机:古拜杜利纳集团:系统/Fhs

来源RPM:branding-SLES-13-20.30.src.RPM

尺寸:1659许可证:BSD 3条款

签名:RSA/82012年2月3日星期五,密钥ID e3a5c360307e3d54
包装商:http://bugs.opensuse.org

摘要:SUSE Linux企业服务器品牌文件

我不介意先对它进行一些编辑(删除某些空格等),以帮助实现总体目标。

文本解析问题-如何正确解析

这可以通过两个以上单词的关键字列表来完成,
否则它只使用一个单词。

使用已知单词的原因是没有任何正则表达式来确定
短语的开头。

替换为'n$1

编辑-更新到regex(消耗/去除前面的空白)

 #  @"'s*'b((?:'w+|Keywords1|Keywords2|Keywords3):)"
 's*                     # Strip all preceding whitespace(will get replaced with 'n)
 'b 
 (                       # (1 start)
      (?:
           'w+           # default, single word
        |  Key words1    # or, known words or phrases
        |  Key words2
        |  Key words3 
      )
      :
 )                       # (1 end)