gpt4 book ai didi

regex - 使用powershell匹配正则表达式中的换行符

转载 作者:行者123 更新时间:2023-12-02 17:49:35 27 4
gpt4 key购买 nike

我有一些数据,如下所示:

:setvar DatabaseName "CI_1814903104"
:setvar DefaultFilePrefix "CI_1814903104"
--etc.

GO

我希望用空字符串替换所有 sql cmd 变量行(以 :setvar 开头的行),以便数据如下所示:

--etc.    

GO

这个语句(其中 $script 包含数据)似乎可以解决问题,但仍然留下换行符:

$script -replace ":setvar(.*$)", ""

结果:

 
 
--etc.

GO

如何在匹配中包含换行符?看似匹配,但实际上并没有被取代。任何帮助表示赞赏。

最佳答案

这假设您的数据是从某个文件中读取的。根据您读取数据的方式,您可能拥有字符串集合而不是单个字符串。

PS C:\> $script = Get-Content data.txt

# Get-Content returns each line as a string object in an Object[].
PS C:\> $script.GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array

PS C:\> $script[0].GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object

如下所示通过管道将 Get-Content 传输到 Out-String 将确保您获得单个字符串,然后您可以对 Windows 换行符进行操作以删除相应的行。

PS <C:\> $script = ( Get-Content data.txt | Out-String ).Trim()
PS <C:\> $script -replace ":setvar(.*)`n", ""
--etc.

GO

关于regex - 使用powershell匹配正则表达式中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18777833/

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