通过 PowerShell 日志,我尝试提取命令,同时丢弃运行命令的路径。例如,
PS C:\Windows\system32> pwd
我只想返回 pwd
。我知道这可以通过 .split
来完成,但我正在努力让正则表达式正常工作。路径会有所不同,因此从特定路径构建正则表达式将不起作用。我现在的尝试是匹配“PS”和“>”之间的字符串,例如这里的正则表达式 (?<=(PS)).*(?=(> ))
。但是,当路径中包含字母“ps”时,这会导致意外结果。
从 >
中分离出来也不需要,因为如果命令有 >
那么我不想修剪实际的命令。
最佳答案
只需取出该行,将其拆分并取出最后一个 - 如果您想要这样,则不需要正则表达式
(("PS C:\Windows\system32> pwd") -split "> ",2)[-1]
不是最好的正则表达式,但可以完成工作:
("PS C:\Windows\system32> pwd") -replace "^.*?> ",""
编辑:更改了评论中提到的正则表达式 - 转义不必要的“>”
关于c# - 使用 PowerShell Split 和正则表达式在正则表达式匹配后返回所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71504323/