繁体   English   中英

用单个空格替换空白

[英]Replace white space with a single space

我从JavaScript中的示例开始,并尝试进行相同的性能测试。

我有

$string = 'RAM Statistics:     5954 /     8174       743=InUse      746=Peak'
$RegEx1 = '/ +/g'
$RegEx2 = '/  +/g'
$RegEx3 = '/ {2,}/g'
$RegEx4 = '/\s\s+/g'
$RegEx5 = '/ +(?= )/g'


Measure-Command {
    $newString = $string -replace $RegEx1, $null
}
Write-Host "$newString"
Measure-Command {
    $newString = $string -replace $RegEx2, $null
}
Write-Host "$newString"
Measure-Command {
    $newString = $string -replace $RegEx3, $null
}
Write-Host "$newString"
Measure-Command {
    $newString = $string -replace $RegEx4, $null
}
Write-Host "$newString"
Measure-Command {
    $newString = $string -replace $RegEx5, $null
}
Write-Host "$newString"

和我的时间截然不同,但是所有人都什么也没有返回,这并不是完全有用。 将Javascript RegEx转换为PowerShell Regex会出错吗? FWIW,我想让事情保持简单,所以只用空格,不需要替换CR等。 数据非常简单,格式只是垃圾。

在PowerShell(通过扩展,我认为通常是.Net)中,您的修饰符/选项应该位于(?smi)/ +类的字符串的开头。

用单个空格替换空白

$newString = $string -replace "\s+", " "

如果您想要简单,那应该做得很好。

考虑使用正则表达式字符串显示此示例的示例。

"this is only a /    /g" -replace '/ +/g', "test"
this is only a test

一对正斜杠,斜杠之间至少有一个空格,其后跟紧跟着斜杠g。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM