PowerShell正则表达式查找替换问题:INI文件换行内容替换失败
问题分析与解决方法
你的问题核心是搞混了字面量\n和实际换行符:
- INI文件里的
\nThomas是两个普通字符(\+n)加上Thomas,不是真正的换行后接Thomas - 你写的替换模式
\r\nThomas是匹配实际的回车+换行符,自然找不到目标内容
修正后的PowerShell代码
要匹配字面量的\n,因为-replace用的是正则表达式,\是特殊转义符,所以得把\转义成\\,这样才能匹配文本里的字面量\:
$settings = Get-Content -Raw $path -Encoding UTF8 $settings = $settings -replace '\\nThomas', '\nMike'
如果要确保只替换行尾的\nThomas,可以加上行尾锚点$:
$settings = $settings -replace '\\nThomas$', '\nMike'
内容的提问来源于stack exchange,提问作者Grobanix
相关产品推荐
相关产品推荐

