gpt4 book ai didi

arrays - Powershell替换数组错误中的值

转载 作者:行者123 更新时间:2023-12-03 00:53:37 24 4
gpt4 key购买 nike

我一直在尝试替换数组中的值,而我目前正在尝试清除某些值。我试图通过使用数组删除表标签,或者也许有更好的方法来做正则表达式?任何帮助,将不胜感激!谢谢。

$array = [regex]::matches($lines, "<td>(.*?)</td>")

for($x = 0; $x -le $max; $x++){
$array[$x] = $array[$x].value -replace "<td>", ""
}

不幸的是,我不断收到以下错误:
    [ : Unable to index into an object of type System.Text.RegularExpressions.MatchCollection.

最佳答案

$array = $lines | ? {$_ -match "<td>(.*?)</td>"} | % {$_.Replace("<td>", "").Replace("</td>", "") }

如果您只想替换,而不是,只需省略第二个替换。

更好的是,如果您想同时替换两个:
$array = $lines | ? {$_ -match "<td>(.*?)</td>"} | % {$_ -replace "</?td>", ""}

为了回答您的意见,这可能会更好:
$array = [regex]::matches($lines, "<td>(.*?)</td>") | Select -exp Value | % {$_ -replace "<td>(.*?)</td>", '$1'}

我怀疑有更好的方法来执行此操作,因为两次应用正则表达式效率低下,但我认为它应该可以工作。

好吧,我想我明白了。试试这个:
$array = [regex]::matches($lines, "<td>(.*?)</td>") | % {$_.Result('$1')}

关于arrays - Powershell替换数组错误中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817725/

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