【问题标题】:Search for color string in powershell在 powershell 中搜索颜色字符串
【发布时间】:2018-02-14 16:44:16
【问题描述】:

我有一个 PowerShell 代码。如何在 RichTextBox 中搜索具有特定颜色格式的字符?或者任何颜色?

我们以红色背景为例。我已突出显示文本的某些部分,并希望找到这些字符。

目前,我只搜索文本。我的代码示例:

Function example-search {

    $index = $resultbox.Find($SearchText, $resultbox.SelectionStart + $resultbox.SelectedText.length, [System.Windows.forms.RichtextBoxFinds]::None)

    if($index -ge 0)
    {
        $resultbox.select($index, $searchText.length)
        $resultbox.ScrollToCaret()
    }
    else
    {
        $index = $resultbox.Find($SearchText, 0, $resultbox.SelectionStart , 
        [System.Windows.forms.RichtextBoxFinds]::None)
    }

    if($index -ge 0)
    {
        $resultbox.select($index, $searchText.length)
        $resultbox.ScrollToCaret()
    }
    else
    {
        $resultbox.SelectionStart = 0
    }

}

【问题讨论】:

    标签: string powershell search colors


    【解决方案1】:

    这是一种方法,它遍历richbox 中的每个字符并检查颜色名称。您可以根据需要重新排列它

    function SearchByColor
    {
        param ([string]$color)
    
        $result = for ($i = 0; $i -lt $resultbox.TextLength; $i++)
        {
            $resultbox.Select($i, 1)
    
            if ($resultbox.SelectionColor.Name -eq $color)
            {
                $resultbox.SelectedText
            }
        }
    
        $result  -join ''
    }
    

    使用它:

    SearchByColor Red
    

    【讨论】:

    • 你好 Micky 谢谢你的例子,但这对我不起作用。搜索遍历文本,没有找到任何彩色文本。我可以同时使用 SelectionColor.Name 或 SelectionBackColor.Name ...
    • 您需要使用字符串版本的颜色名称,例如“Red”或“Blue”。你用什么颜色来搜索的,我看看能不能在这里重现。
    猜你喜欢
    • 2015-02-25
    • 2013-06-25
    • 2014-01-13
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 2021-10-25
    • 2016-11-30
    相关资源
    最近更新 更多