gpt4 book ai didi

正则表达式匹配组到 PowerShell 中的字符串

转载 作者:可可西里 更新时间:2023-11-01 10:21:53 25 4
gpt4 key购买 nike

我有一个对字符串进行搜索并创建两个匹配组的正则表达式:

    if ($BASICEDITMESSAGECONTENT -match '(?sm)(^.*?</title>)(.*)')
{
if ($matches.Count -ge 3)
{
$BASICEDITMESSAGECONTENT = "$matches[1]$SCRIPTREFERENCE$matches[2]"
echo $BASICEDITMESSAGECONTENT
...
}
}

当我回应它时,我得到以下输出:

System.Collections.Hashtable[1]<MYSCRIPTREFERENCE>System.Collections.Hashtable[2]

我不想在字符串中使用这样的 System.Collections.Hashtable 值,我只想要来自该正则表达式分组的匹配文本的实际值字符串。我怎样才能实现它?

例如,当我使用 echo $matches[1] 时,它显示正则表达式组的实际值,而不是 System.Collections.Hashtable[1] .

最佳答案

您需要使用 sub-expressions索引哈希表:

$BASICEDITMESSAGECONTENT = "$($matches[1])$SCRIPTREFERENCE$($matches[2])"

注意每个索引周围的 $(...)。您希望作为表达式计算的字符串文字的所有部分都需要放在 $(...) 中。否则,PowerShell 只会扩展变量名,并将 [1] 等其他内容视为普通文本。

关于正则表达式匹配组到 PowerShell 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26470423/

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