gpt4 book ai didi

regex - PowerShell Select-String from file with Regex

转载 作者:行者123 更新时间:2023-12-02 22:10:21 24 4
gpt4 key购买 nike

我试图从 .sln(Visual Studio 解决方案文件)中获取一串文本,以显示解决方案中包含哪些项目文件。

文本的示例行是

Project("{xxxx-xxxxx-xxxx-xxxx-xx}") = "partofname.Genesis.Printing", "Production\partofname.Genesis.Printing\partofname.Genesis.Printing.csproj", "{xxx-xxx-xxx-xxx-xxxx}" EndProject



我感兴趣的字符串部分是 \ 之间的最后一部分和 " .

\partofname.Genesis.Printing.csproj"

我使用的正则表达式是:
$r = [regex] "^[\\]{1}([A-Za-z.]*)[\""]{1}$"

我正在阅读文件内容:
$sln = gci .\Product\solutionName.sln

我不知道在我的字符串选择语句中放什么。

我是 PowerShell 的新手,希望得到任何帮助...

我之前确实有一个非常非常长的方法,但我已经失去了工作......本质上它是对文件中的每一行执行此操作:
Select-String $sln -pattern 'proj"' | ? {$_.split()}

但是正则表达式会容易得多(我希望)。

最佳答案

以下获取 " 之间的所有内容和 proj" :

Select-String -Path $PathToSolutionFile ', "([^\\]*?\\)*([^\.]*\..*proj)"' -AllMatches | Foreach-Object {$_.Matches} | 
Foreach-Object {$_.Groups[2].Value}
第一组获取项目文件所在的文件夹。第二组获取您所请求的(项目文件名)。 AllMatches返回每场比赛,而不仅仅是第一场。之后,只需遍历匹配对象上的每个匹配集合并获取匹配中第二组的值即可。

关于regex - PowerShell Select-String from file with Regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26891275/

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