如何在PowerShell中替换Cx开头字符串的指定后缀为prod.trd.co?
PowerShell 替换特定域名后缀为指定内容
需求说明
需要将以下格式的字符串:
"C0.test.trd.co"
"C1.trd.co"
"C2.test.trd.co"
替换为:
"C0.prod.trd.co"
"C1.prod.trd.co"
"C2.prod.trd.co"
核心要求:匹配以C+数字开头,后缀为trd.co或test.trd.co的字符串,将后缀部分替换为prod.trd.co。
解决方案
使用PowerShell的-replace操作符结合正则表达式实现精准匹配替换:
处理单个字符串
$originalStr = "C0.test.trd.co" $newStr = $originalStr -replace '^(C\d+)\.(test\.)?trd\.co$', '$1.prod.trd.co' $newStr # 输出:C0.prod.trd.co
批量处理字符串数组
$originalStrings = @( "C0.test.trd.co", "C1.trd.co", "C2.test.trd.co" ) $newStrings = $originalStrings -replace '^(C\d+)\.(test\.)?trd\.co$', '$1.prod.trd.co' $newStrings
执行后输出:
C0.prod.trd.co C1.prod.trd.co C2.prod.trd.co
正则表达式说明
^:匹配字符串开头(C\d+):捕获以C开头后跟一个或多个数字的前缀,作为分组1($1)\.(test\.)?:匹配可选的.test.部分(?表示该部分可出现0次或1次)trd\.co$:匹配字符串结尾的trd.co,确保只替换符合后缀要求的字符串- 替换为
$1.prod.trd.co:将捕获的前缀与目标后缀拼接
内容的提问来源于stack exchange,提问作者Techno
相关产品推荐
相关产品推荐

