PowerShell中提取起止字符串间内容(含结束字符串)的方法
修改PowerShell正则以包含结束字符串
你的正则里用了正向先行断言(?=\DocFWImport>),这种断言只会确认结束字符串存在,但不会把它包含到匹配结果里。要让结果带上结束字符串,只需要调整正则模式:
$testText = Get-Content C:\Users\Administrator\Documents\test1\test1.txt -Raw $pattern = '(?<=DocMasterBOL>).+?DocFWImport>' [regex]::Matches($testText, $pattern).Value
关键修改说明:
- 删掉结束字符串前的
(?=...)断言结构,直接把DocFWImport>写进匹配模式,这样正则就会把中间内容和结束字符串一起捕获。 - 给
Get-Content加上-Raw参数:默认Get-Content会按行读取文件,要是目标内容跨了多行,原代码会匹配失败。加-Raw后文件会被读成一个完整字符串,跨行场景也能正常匹配。
内容的提问来源于stack exchange,提问作者Eduardo Escamilla Salazar
相关产品推荐
相关产品推荐

