【发布时间】:2021-10-31 09:55:14
【问题描述】:
尝试使用替换运算符替换字符串中的数字(20 和变量 $cntr=120)。但是在输出中被 $cntr 卡住了。我在哪里做错了?请有更好的解决方案。
输入字符串-
myurl.com/search?project=ABC&startAt=20&maxResults=100&expand=log
所需的输出字符串-
myurl.com/search?project=ABC&startAt=120&maxResults=100&expand=log
实际输出字符串-
myurl.com/search?project=ABC&startAt=$cntr&maxResults=100&expand=log
$str='myurl.com/search?project=ABC&startAt=20&maxResults=100&expand=log'
$cntr=120
$str = $str -replace '^(.+&startAt=)(\d+)(&.+)$', '$1$cntr$3'
$str
【问题讨论】:
-
使用像 "$1$cntr$3" 这样的双引号不起作用。我得到 120。所以,只有 $cntr 正在评估,而不是 $1 和 $3。
-
@Ctznkane525 建议的解决方案可行,但想知道是否有任何替代解决方案可用于此类替换任务。
标签: regex string powershell replace