【发布时间】:2014-12-25 14:21:20
【问题描述】:
我们正在尝试制作我们在正常维护周期期间应用的 Microsoft KBase 更新的更改日志。 我们要解析以下特定行的信息。示例如下:
Operation : 1
ResultCode : 2
HResult : 0
Date : 10/7/2014 10:27:50 AM
UpdateIdentity : System.__ComObject
Title : Update for Microsoft Silverlight (KB2977218)
Description : This update to Silverlight improves security, reliability, accessibility support, startup performance, enhances line-of-business support and includes several fixes to better support rich internet applications. This update is backward compatible with web applications built using previous versions of Silverlight.
UnmappedResultCode : 0
ClientApplicationID : AutomaticUpdates
ServerSelection : 1
ServiceID :
UninstallationSteps : System.__ComObject
UninstallationNotes :
SupportUrl : http://go.microsoft.com/fwlink/?LinkID=105787
Categories : System.__ComObject
我们想要的输出是:
Title : Update for Microsoft Silverlight (KB2977218)
Date : 10/7/2014 10:27:50 AM
Description : This update to Silverlight improves security, reliability, accessibility support, startup performance, enhances line-of-business support and includes several fixes to better support rich internet applications. This update is backward compatible with web applications built using previous versions of Silverlight.
我正在尝试编写一个简单的 C# 应用程序,我们会将原始数据粘贴到富文本框中,单击一个按钮并在另一个富文本框中获得所需的输出。有一种可能有用的“关键字:数据”模式。
我创建了表单和表单上的元素。我试图找到一种方法来搜索关键字,但这不会产生我们寻求的结果。我们希望关键字或行可以这么说,如您所见,描述可能是多行。
我目前没有任何示例代码可发布,因为我不知道从哪里开始执行此任务。任何示例代码都将有助于完成此任务。
【问题讨论】:
-
它真的是多行还是你只是猜测,因为你的文本是这样被包装的?
Description :后面的字符串中实际上是否有\n字符?请注意最新的编辑如何表明Description只是一个很长的行。 -
许多简单的方法可以做到这一点。您可以编写一个匹配 [anything]:[anything] 的正则表达式,然后读取您的匹配项,并且只获取匹配“title”或“date”或“description”的第一个元素的匹配项,或者使用 split() 对其进行标记行尾 (\r\n) 和冒号 (:)。
-
看起来你可以让 PowerShell 为你解决这个问题。如果它的事件日志详细信息,您真的要提取记录,将其复制到文本框然后拆分吗?听起来像很多手工工作要做..
-
@dbc 和 Dominic Zukiewicz - 我只需要一个文本解析器来完成我试图为另一个同行解决的任务。不过谢谢你的建议。
标签: c# parsing richtextbox