我有以下文字,我试图整理'将所有类别放在他们自己的行上。我不知道如何使用正则表达式或任何其他方法。
名称:branding-SLES重定位:(不可重定位)
版本:11供应商:SUSE LINUX Products GmbH,Nuernberg,Germany
发布:3.20.30建立日期:2012年2月3日星期五
安装日期:2014年9月24日星期三建造主机:gubaidulina
组:System / Fhs Source RPM:branding-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
Products GmbH,纽伦堡,德国
发布:3.20.30
建造日期:2012年2月3日星期五安装日期:2014年9月24日星期三
构建主持人: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 :(得分: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)