文本解析问题 - 如何正确地打印
问题描述:
我有以下文本,我试图通过将所有类别放在自己的行上来'整理'。我不知道如何使用正则表达式或任何其他方法。文本解析问题 - 如何正确地打印
名称:品牌-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
摘要: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的品牌文件
我不介意前手就可以做一些修改(删除某些空间等),以帮助其总体目标。
答
这可以使用多于两个单词的关键字列表完成,否则它使用单个单词。
使用已知单词的原因是,没有任何正则表达式明智地确定短语的开始处
。
代用是\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)
这可以用两个以上的字的关键字列表来完成,否则它使用一个单词。我会发布我的意思。 – sln 2014-10-09 17:31:31
thx,看看fw :) – Fearghal 2014-10-09 17:32:51