我有一个很长的配置文件,我需要从中抽取一个子字符串,编辑其中的一些内容,并替换原始内容并保存该文件。我对PowerShell颇为陌生,但我认为最后两部分我可以做。我遇到的问题首先是与正则表达式匹配。Powershell正则表达式用于两个字符之间的多行字符串
[SECTION1]
SETTING1=ABC
SETTING2=DEF
SETTING3=GHI
[SECTION2]
SETTING1=ABC
ANOTHERSETTING=XYZ
[SECTION3]
SOMESETTING=DFH
FINALSETTING=OWA
我测试过上RegExr一个正则表达式,它的工作原理确定在那里,但我还没有尝试到转移到PowerShell脚本时,任何的喜悦。
(^\[SECTION2\](\n.+$){2})
我想要做的是找到“[SECTION2]”,并将所有内容匹配到“[”的下一个实例。我现在有它匹配“[SECTION2]”和两条换行符,但想匹配到下一个方括号。
我已经尝试了几个命令来运行正则表达式,但似乎没有任何东西给我带回任何东西。例如:
Select-String -Path 'PATH_TO_FILE' -Pattern '(^\[SECTION2\](\n.+$){2})'
我在做一些根本性的错误吗?
我已经编辑我原来的职位。我怀疑我没有正确理解这个实现,所以对此有所帮助。我尝试使用你提供的正则表达式,但是也没有产生任何结果。 –
@MikeWhitehead看到我的编辑。 – briantist
我试过了你的建议,但它什么都没有返回。 Get-Content将文件拉入,所以第一部分实际上是读取文件,但Select-String似乎无法找到匹配。例如,是否有任何方法来匹配[SECTION2]和[SECTION3]的开头方括号之间的所有内容? –