清理richtextbox中的输入以删除空行

时间:2014-12-19 17:21:10

标签: powershell input-sanitization

我正在尝试清理richtextbox中的输入以删除空行。

当我运行程序时,它将清理输入并运行命令。

以下是我在运行命令之前用来清理输入的代码:

$richtextbox1.Font = "Microsoft Sans Serif, 8.25pt"
$richtextbox1.Text = $richtextbox1.Text -replace ";", "`n" -replace ",", "`n" -replace " ", ""

如果是逗号或分号分隔列表,它会将每个项目分隔成一个新行,以便以后每行都可以输入一个数组。

我要做的是在richtextbox中找到一行为空白并删除该行。从excel复制单元格时可能会出现空行。

任何帮助将不胜感激。如果您有任何问题,我会尽力解释。

richtextbox中的示例输入:

Computer1, Computer2, Computer3, Computer4, Computer5
Computer6
(Blank space in input)
Computer7

所需的消毒输入:

Computer1
Computer2
Computer3
Computer4
Computer5
Computer6
Computer7

**编辑:**我找到了一个草率的解决方案,这将适用于我的应用程序,但可能不适合需要为大量数据执行此操作的人。 (我不是一个庞大的程序员,只使用它来制作工具,所以我相信有一种方法可以更有效地完成这项工作。)

$richtextbox1.Font = "Microsoft Sans Serif, 8.25pt"
$richtextbox1.Text = $richtextbox1.Text -replace ";", "`n" -replace ",", "`n" -replace " ", ""

$computers = $richtextbox1.Text.Split("`n") | % { $_.trim() }
$richtextbox1.Text = ""
foreach ($computer in $computers)
{
    if ($computer -ne "")
    {
        $richtextbox1.AppendText("$computer`r")
    }
}

2 个答案:

答案 0 :(得分:2)

修改此行:

$richtextbox1.Text = $richtextbox1.Text -replace ";", "`n" -replace ",", "`n" -replace " ", ""

$richtextbox1.Text = $richtextbox1.Text -replace ";", "`n" -replace ",", "`n" -replace " ", "" -replace '(?s)(\n){2,}', "`n" -replace '\n$',''

倒数第二次替换将用单个\ n替换两个或连续的\ n字符以消除内部空白行。最后一个替换是消除最后的\ n。

答案 1 :(得分:0)

我找到了一个草率的解决方案,这对我的应用程序有效,但可能不适合需要为大量数据执行此操作的人。 (我不是一个庞大的程序员,只使用它来制作工具,所以我相信有一种方法可以更有效地完成这项工作。)

$richtextbox1.Font = "Microsoft Sans Serif, 8.25pt"
$richtextbox1.Text = $richtextbox1.Text -replace ";", "`n" -replace ",", "`n" -replace " ", ""

$computers = $richtextbox1.Text.Split("`n") | % { $_.trim() }
$richtextbox1.Text = ""
foreach ($computer in $computers)
{
    if ($computer -ne "")
    {
    $richtextbox1.AppendText("$computer`r")
    }
}