gpt4 book ai didi

regex - 替换为编号值

转载 作者:行者123 更新时间:2023-12-03 00:49:43 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do I replace a token with increasing numbers in Perl?

(3 个回答)


6年前关闭。




假设我有一个字符串

$t = "some {great} vacation that {we} had that {year}"

我想用一个编号的值替换占位符:

"some {0} vacation that {1} had that {2}"



我本来期望一个替代品来做到这一点:
$i = 0; $t -replace "{.*?}", "{$([string] ++$i)}"

但我得到的是:

"some {1} vacation that {1} had that {1}"



好像字符串只被评估一次。在 perl 正则表达式中,有一种方法可以为替换值指定一个函数……这是如何在 psh 中完成的?

最佳答案

试试这个:

$i = 0 ; [Regex]::Matches($t,"{.*?}") | %{ ++$i ; $t = $t.Replace($_.Value,"{$i}") } ; $t 

我认为问题在于 Regex 引擎永远不会为它找到的每个匹配项获取 $i 的新值,所以每次它增加它时, $i0 .

关于regex - 替换为编号值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32195382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com