【发布时间】:2018-09-06 06:11:31
【问题描述】:
我有一个 2000 行的字符串,我需要对其进行解析。字符串的最大部分是我不关心的路径(C:\ 等)。我只需要从 * WRITER "Microsoft Hyper-V VSS Writer" 获得两件事:
1) 编写器 ID = {66841cd4-6ded-4f4b-8f17-fd23f8ddc3de}
2) 对于此特定 编写器(Microsoft Hyper-V VSS 编写器)中的每个组件,我需要名称,这也是一个 guid。例如第一个组件是:-名称:02E98059-C043-421D-96BD-C19B193E2961
我的尝试是:
[Regex]::Match(input, @"(?is)\* WRITER ""(Microsoft Hyper-V VSS Writer)""\s*-\s*Writer\s*ID\s*=\s*[{(]?(?<WriterID>[0-9A-F]{8}[-]?(?:[0-9A-F]{4}[-]?){3}[0-9A-F]{12})[)}]?(?:.*?\n[\t\p{Zs}]{3,}\+\s*Component ""\1:\\(?<CompID>[^""]+))*");
由于要解析的字符串很长,我创建了一个正则表达式 101,链接如下:https://regex101.com/r/UzfR1f/1
任何帮助将不胜感激。
【问题讨论】:
标签: .net regex powershell