使用通配符的 powershell 拆分

powershell split using wildcard

我正在尝试使用 PowerShell -split 运算符拆分文本文件,但无法计算出表达式。

例子

这需要分成总共 4 个部分,例如

虽然前 2 个部分按预期工作,但第 3 个部分可以是带空格的文本或不带空格的文本或可变长度的数字,这对我不起作用。

$c -split "(\d\d/\d\d/\d\d),\s(\d\d\:\d\d)\s\-\s*"

$c -split "(\d\d/\d\d/\d\d),\s(\d\d\:\d\d)\s\-\s(*\:\s)"

将其拆分为 3 且无法将其拆分为 4,因为 * 似乎覆盖了第 4 部分

如有任何解决此问题的建议,我们将不胜感激

使用正则表达式 alternation (|) 指定多个(多字符)分隔符字符串:

'16/01/18, 00:47 - John Doe: Payload_Text' -split ', | - |: '

请注意,您传递给 -split operator 的正则表达式指定了分隔 标记的内容,而不是匹配标记本身的内容。

(在 (...) 中包含(部分)正则表达式,即包括 捕获组 ,使得 -split include 输出中捕获的文本,但您的示例数据不需要匹配标记本身的任何部分)。

请注意,如果您有一个 array 输入字符串,则必须在 loop[=33] 中对每个字符串调用 -split =],因为直接使用 -split 将 return 一个 包含跨所有输入字符串的标记的单个平面数组