powershell - 获取变量中的匹配字符串
问题描述
我正在尝试从变量中获取匹配的字符串。
例如,
$out = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{F1E1501C-B95C-42E0-BFD4-757DF1B961D1}"
我需要里面的值"{ }"
。
解决方案
您可以为此使用正则表达式:
$out = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall{F1E1501C-B95C-42E0-BFD4-757DF1B961D1}"
$out -match "^.*{(?<guid>.*)}$" | Out-Null
然后,您可以像这样访问该值:
$matches.Guid
-match
产生一个布尔值,让您知道它是否成功。在这里,我通过将其发送到 来丢弃它Out-Null
,但是您可以使用它来决定是否应该继续,例如,将其包装在一个if
:
if ($out -match "^.*{(?<guid>.*)}$")
{
# Do something
}
请注意,您可以使用此处提到的模式获得更准确的 GUID 匹配:
推荐阅读
- javascript - 在 JavaScript 中显示以零密码开头的随机数
- javascript - 根据从另一个循环返回的结果运行一个循环
- awk - 为每一行提取正则表达式模式 - 如果不存在模式,则留空行
- html - 在html中的两个div之间设置图像
- flutter - 有没有办法在颤动中配置小部件的 z 轴?
- python - 如何在 matlplotlib 中正确设置轴
- heroku - Flask-socketio 的 https、http、wss 问题无法在 Heroku 中连接
- c# - 访问程序中的窗体 - Windows 窗体可访问性对象
- mongodb - 尝试使用 mongo 事务时出现 WriteConflict (v4.0.12)
- swift - 快速查找电池充电周期数