我正在尝试清理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")
}
}
答案 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")
}
}