You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何使用-replace仅匹配第一个点号?

只替换PowerShell字符串数组中每个元素的第一个“.”

有两种简单的方法可以实现需求:

方法1:用正则捕获组(-replace运算符)

通过正则捕获组锁定第一个“.”的位置,精准替换,代码如下:

$Var = "Dog.Jumping.png", "Horse.Jumping.gif", "Cat.Jumping.jpg", "Lion.Jumping.tiff", "Shark.Jumping.svg", "Cow.Jumping.psd"
$Var -replace '^([^.]*)\.', '$1 - '

正则逻辑说明:

  • ^:从字符串开头开始匹配
  • ([^.]*):捕获第一个“.”之前的所有非“.”字符(存为捕获组1)
  • \.:精准匹配第一个“.”(转义是因为“.”在正则中是通配符)
  • 替换为$1 - :保留捕获到的内容,把第一个“.”替换成-

运行后每个元素会变成:

  • Dog - Jumping.png
  • Horse - Jumping.gif
  • Cat - Jumping.jpg
  • Lion - Jumping.tiff
  • Shark - Jumping.svg
  • Cow - Jumping.psd

方法2:用字符串的Replace方法(更直观)

PowerShell的字符串对象自带Replace方法,支持指定替换次数,直接指定只替换1次即可:

$Var = "Dog.Jumping.png", "Horse.Jumping.gif", "Cat.Jumping.jpg", "Lion.Jumping.tiff", "Shark.Jumping.svg", "Cow.Jumping.psd"
$Var | ForEach-Object { $_.Replace('.', ' - ', 1) }

这个方法不需要写正则,对新手更友好,效果和方法1完全一致。

内容的提问来源于stack exchange,提问作者gaberiel__

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:13:11