【发布时间】:2018-01-26 12:31:45
【问题描述】:
我对 PowerShell 正则表达式有疑问。我有这个输入:
--- 新命令:20. 12. 2017 00:01:19 结束命令:20. 12. 2017 00:01:19 --- --- 新命令:20. 12. 2017 00:06:19 时间 47 毫秒。 删除 18 已创建 15 结束命令:20. 12. 2017 00:06:19 --- --- 新命令:20. 12. 2017 00:11:19 时间 47 毫秒。 结束命令:20. 12. 2017 00:11:19 --- --- 新命令:21. 12. 2017 00:16:19 时间 31 毫秒。 结束命令:21. 12. 2017 00:16:19 ---我有以下代码,但它不起作用,你能告诉我为什么吗?
$File = Get-Content C:\Users\user\Desktop\processed.txt
$Result = $File -replace "([^/]+)End command: 20. 12. 2017 (\d+):(\d+):(\d+)","" > C:\Users\user\Desktop\processed.txt
输出只能是日期为 21. 12. 2017 及更高日期的日志。
--- 新命令:21. 12. 2017 00:16:19 时间 31 毫秒。 结束命令:21. 12. 2017 00:16:19 ---【问题讨论】:
-
它是怎么失败的?你得到了什么出乎你意料的结果?您采取了哪些故障排除步骤,结果如何?
-
基本上没有任何反应,没有错误,我尝试一步一步编辑正则表达式但没有结果
-
用文字描述你认为你的正则表达式做了什么。
-
您的正则表达式所做的事情与您的要求完全不同。您可以使用正则表达式来做到这一点,但这并不容易。您需要一个多行正则表达式,它匹配“新命令
,End 命令”以及介于两者之间的所有内容。我会用一个或多个内部正则表达式来处理循环中的行。 -
基本上我需要从顶部捕获所有文本,直到“新命令:21. 12. 2017”。我不确定,但普通的简单正则表达式应该可以吗?
标签: regex powershell text replace