-6ren">
gpt4 book ai didi

powershell - 使用PowerShell在模式之后获取字符串值

转载 作者:行者123 更新时间:2023-12-02 23:11:30 31 4
gpt4 key购买 nike

我想获取以下html代码段中$ctrl之后的字符串:

 <div ng-if="$ctrl.CvReportModel.IsReady">
ng-click="$ctrl.confirmation()"></cs-page-btn>
<cs-field field="$ctrl.CvReportModel.Product" ng-model="$ctrl.UploadedFile.Product"></cs-field>
<cs-field field="$ctrl.CvReportModel.Month" ng-model="$ctrl.UploadedFile.Month"></cs-field>

所以我想得到像这样的输出:
CvReportModel.IsReady
confirmation()
CvReportModel.Product
CvReportModel.Month

我正在尝试使用 Get-ContentSelect-String执行此操作,但仍无法获得所需的输出。

最佳答案

使用Get-Content cmdlet读取文件,并使用regex提取所需的内容:

$content = Get-Content 'your_file_path' -raw
$matches = [regex]::Matches($content, '"\$ctrl\.([^"]+)')
$matches | ForEach-Object {
$_.Groups[1].Value
}

正则表达式:
"\$ctrl\.[^"]+

输出:
CvReportModel.IsReady
confirmation()
CvReportModel.Product
UploadedFile.Product
CvReportModel.Month
UploadedFile.Month

另一种使用 Select-String cmdlet和后向为正的 regex的方法:
Select-String -Path $scripts.tmp -Pattern '(?<=\$ctrl\.)[^"]+' | 
ForEach-Object { $_.Matches.Value }

输出:
CvReportModel.IsReady
confirmation()
CvReportModel.Product
CvReportModel.Month

注意:
这只会返回每行的第一个 $ctrl.*匹配项。但是,由于这与您所需的输出匹配,因此可能对您有用。

关于powershell - 使用PowerShell在模式之后获取字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38376680/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com