我在正则表达式方面遇到了一些问题,主要是因为我认为我能找到的信息并不是专门针对 powershell 的,而且我尝试过的所有示例要么错误,要么无法按预期工作。我试图用另一个单词替换字符串中第一次出现的单词,但不替换该单词的任何其他出现。以字符串为例:
我的名字是鲍勃,她的名字是萨拉。
我想将第一次出现的 name
替换为 baby
,这样生成的字符串将是
我的 child 是鲍勃,她的名字是萨拉。
我一直在https://regex101.com/工作尝试构建并查看我选择的内容,但正如我所说,这些都没有正则表达式的 powershell 风格。因为我可以关闭 global
标志,它似乎选择了第一个出现的位置,但不是在 powershell 中。所以我真的不知道从哪里开始,此时真正要做的是选择单词 name
的所有出现:
$test = "My name is Bob, her name is Sara."
$test -replace 'name', 'baby'
最佳答案
替换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
关于powershell - 仅替换字符串中第一次出现的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40089631/