【问题标题】:How do you replace multiple carriage return / newline with a single carriage return?如何用单个回车替换多个回车/换行符?
【发布时间】:2019-05-14 05:37:44
【问题描述】:

在文本框内;我在文本框失去焦点时进行编码,然后触发事件以删除多个回车符和换行符,并使用单个回车符和换行符。

我尝试了一个开关,它可以工作,但我需要一个循环。一旦找到并替换匹配;它不会继续剩下的。

我试了一会儿;但它继续不停。

我尝试了一个离开事件,但它就像切换代码。

开关:

Switch($Textbox1.text -eq "`r`n`r`n`r`n"){
    $TextBox1.text = $TextBox1.text -replace "`r`n`r`n`r`n", "`r`n`r`n"
}

同时:

While($Textbox1.text -match "`r`n`r`n`r`n"){
    $TextBox1.text = $TextBox1.text -replace "`r`n`r`n`r`n", "`r`n`r`n"
}

离开活动:

$TextBox1.add_leave({

    $TextBox1.text = $TextBox1.text -replace "`r`n`r`n`r`n", "`r`n`r`n"

})

例如,

abc

(5 次返回/换行)

abc

(7 次返回/换行)

abc

当文本框失去焦点时代码触发,结果应该是:

abc

(1 个返回/换行符)

abc

(1 个返回/换行符)

abc

【问题讨论】:

  • 请提供mvce
  • 你只要把Exit放在你想停下来的地方。

标签: powershell


【解决方案1】:

试试这个:

$action = { $TextBox1.text -replace "(`r`n){2,}","`r`n" }


$TextBox1.add_leave( $action )

【讨论】:

  • 谢谢。然而这并没有奏效。我将它构建到一个函数中并且它起作用了。函数操作{$TextBox1.text = $TextBox1.text -replace "(rn){2,}","rnrn"} $TextBox1.add_leave({action})
  • 不过,我希望您能解释一下 {2,} 部分并就此进行教育。
猜你喜欢
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
相关资源
最近更新 更多