gpt4 book ai didi

powershell - 替换powershell中变量的一部分而不替换其余部分?

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

因此,我具有此PowerShell脚本,该脚本将通过将"https://www.youtube.com/watch?v="替换为"id="而不替换URL的ID来替换Youtube URL。

例:
电子白板之前的变量:https://www.youtube.com/watch?v=FigUL6NWtqw电子白板变量,然后:id=FigUL6NWtqw
这是我已经尝试过的:

电源 shell

$Copyboard = Get-Clipboard | Out-String
$Copyboard = $Copyboard -replace "https://www.youtube.com/watch?v=", "id="

最佳答案

Regex -Replace运算符可用于实现结果。这将用=替换所有内容,直到第一个id字符为止。

$Copyboard = $Copyboard -Replace "^[^=]+","id"

使用 -Split运算符,可以将 id=放在查询值之前。我将 =字符用作分隔符,并在 =后使用 [1]索引返回所有数据。在这里,我使用了格式运算符( -f),但是您可以使用选择的任何串联技术。
$Copyboard = "{0}{1}" -f 'id=',($Copyboard -Split "=")[1]

另一种方法是先将 $Copyboard转换为 [uri],这仅在以后不为新值重新分配 $Copyboard时才为代码打开其他选项。然后访问要更改的属性(在这种情况下为 query),仅输出更改后的属性。对于uri对象,将复制的uri的不同部分分解为多个子部分,并将得到的子部分存储为对象的属性。

将regex -Replace运算符与uri对象一起使用:
([uri]$copyboard).Query -Replace "^[^=]+","id"

关于powershell - 替换powershell中变量的一部分而不替换其余部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56618491/

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