c# - 使用 PowerShell Split 和正则表达式在正则表达式匹配后返回所有内容

标签 c# regex powershell

通过 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/

相关文章:

java - 匹配标签内的内容

Powershell 模块名称

c# - 枚举类型的接口(interface)时,如何只获取直接继承的接口(interface)?

c# - .NET Core iHostedService 关闭 IIS

c# - 将复选框控件添加到列表框

c# - .net 中的 Powershell 版本兼容性

powershell - 对包含给定短语的字符串应用过滤器并返回之后发生的所有内容

c# - 如何区分usb转串口转换器?

java正则表达式: performance and alternative

regex - 在子文件夹中用 .htaccess 重写不起作用