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

PowerShell中如何在字符串替换中使用通配符?代码问题求助

问题原因

你用的$file.Replace()是.NET字符串的内置方法,它只支持精确子串匹配,不识别PowerShell的通配符(*)。你传入的"w*t"会被当成完整的字面量去查找,原字符串里根本没有这个子串,所以替换完全没生效。

解决方法

用PowerShell原生的-replace运算符,它支持正则表达式,能实现你要的通配符式匹配需求:

如果是要替换所有以w开头、t结尾的完整单词(比如你的例子里的want),可以这么写:

$file = "want apple banana want want"
$file -replace '\bw\w*t\b', 'wanna'

如果你的需求就是精准替换want为wanna,直接写更简单:

$file -replace 'want', 'wanna'

补充说明:正则里的\b是单词边界,避免匹配到包含want的更长单词;\w*用来匹配w和t之间的任意字母/数字/下划线,对应你想用*通配符匹配中间内容的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:34:57