仅替换字符串中第一次出现的单词

时间:2016-10-17 14:55:08

标签: powershell

我遇到正则表达式的一些问题主要是因为我认为我能找到的信息不是专门针对PowerShell的,我尝试的所有样本都是错误的或者没有按预期工作。我试图用另一个单词替换字符串中第一次出现的单词但不替换该单词的任何其他出现。举一个例子,取字符串:

My name is Bob, her name is Sara.

我想将name的第一次出现替换为baby,以便生成的字符串为

My baby is Bob, her name is Sara.

我一直在https://regex101.com/工作,试图构建并查看我选择的内容,但正如我所说,这些都没有正则表达式的强大功能。在那里我可以关闭global标志,它似乎选择第一次出现但不在powershell中。所以我真的不知道从哪里开始所有人真正在选择所有出现的单词name

$test = "My name is Bob, her name is Sara."
$test -replace 'name', 'baby'

2 个答案:

答案 0 :(得分:13)

替换 n 次的一种方法:

$test = "My name is Bob, her name is Sara."
[regex]$pattern = "name"
$pattern.replace($test, "baby", 1) 

> My baby is Bob, her name is Sara

答案 1 :(得分:3)

你可以捕捉到所有的东西,然后替换它:

instance Arbitrary a => Arbitrary (Wrapmaybe Maybe a) where
   etc...