使用通配符的 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 一个 包含跨所有输入字符串的标记的单个平面数组 。
我正在尝试使用 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 一个 包含跨所有输入字符串的标记的单个平面数组 。