使用通配符拆分powershell
我正在尝试使用 PowerShell -split 运算符拆分文本文件,但无法找出表达式。
例子
这需要分为总共 4 个部分,例如
虽然前 2 部分按预期工作,但第三部分可以是带空格的文本或不带空格的文本或可变长度的数字,这对我不起作用。
$c -split "(dd/dd/dd),s(dd:dd)s-s*"
$c -split "(dd/dd/dd),s(dd:dd)s-s(*:s)"
将其拆分为 3 份而无法将其拆分为 4 份,因为 * 似乎覆盖了第 4 部分
任何如何解决这个问题的建议将不胜感激
回答
使用正则表达式交替( |) 指定多个(多字符)分隔符字符串:
'16/01/18, 00:47 - John Doe: Payload_Text' -split ', | - |: '
请注意,您传递给-split运算符的正则表达式指定了分隔标记的内容,而不是匹配标记本身的内容。
(包含(部分)正则表达式(...),即包括捕获组,使得在输出中-split 包含捕获的文本,但您的示例数据不需要匹配标记本身的任何部分)。
请注意,如果您有一个输入字符串数组,则必须-split在循环中调用每个字符串,因为直接使用 of-split将返回一个包含所有输入字符串中标记的单一平面数组。