2014-10-09 75 views
-4

我有以下文本,我试图通过将所有类别放在自己的行上来'整理'。我不知道如何使用正则表达式或任何其他方法。文本解析问题 - 如何正确地打印

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

版本:11供应商:SUSE LINUX产品有限公司,纽伦堡,德国

发布:三零年三月二十日生成日期:星期五2012年2月3日

安装日期:周三2014年9月24日编译主持人:古拜杜丽娜

组:系统/ FHS源RPM:品牌-SLES-11-3.20.30.src.rpm

尺寸:1659许可:BSD 3条

签名:RSA/8,周五2012年2月3日,钥匙ID e3a5c360307e3d54

打包机:http://bugs.opensuse.org

摘要:SUSE Linux Enterprise Server的品牌文件

应该

名称:品牌推广,SLES

址:(不可重定位)

版本:11供应商:SUSE LINUX

产品有限公司,纽伦堡,德国

发布:三○年三月二十○日

生成日期:星期五2月3日2012安装日期:Wed Sep 24 2014

建设主机:gubaidulina集团:System/Fhs

源RPM:品牌-SLES-11-3.20.30.src.rpm

大小:1659许可:BSD 3-第

签名:RSA/8,星期五2012年2月3日,密钥ID e3a5c360307e3d54
打包机:http://bugs.opensuse.org

摘要:SUSE Linux Enterprise Server的品牌文件

我不介意前手就可以做一些修改(删除某些空间等),以帮助其总体目标。

+0

这可以用两个以上的字的关键字列表来完成,否则它使用一个单词。我会发布我的意思。 – sln 2014-10-09 17:31:31

+0

thx,看看fw :) – Fearghal 2014-10-09 17:32:51

回答

1

这可以使用多于两个单词的关键字列表完成,否则它使用单个单词。

使用已知单词的原因是,没有任何正则表达式明智地确定短语的开始处

代用是\n$1

编辑 - 更新正则表达式(消耗/条前面的空白字符)

# @"\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) 
+0

嘿thx男人,我回到绘图板与eidea它不可能不知道关键字格式。 'n $ 1做什么? – Fearghal 2014-10-10 11:15:04

+0

@Fearghal - 它的替代品,会在关键字之前插入换行符。 – sln 2014-10-10 15:23:34