2017-03-31 12 views
0

JavaScriptでthisの例から始まり、同じパフォーマンステストを実行しようとしています。空白を1つの空白に置き換えます。

私は

$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などを置き換える必要はありません。データは非常にシンプルで、書式設定はちょうどジャンクです。

答えて

1

拡張子/オプションは、たとえば(?smi)/ +のような構造の文字列の先頭にあると思われます。

あなたはシンプルにしたい場合はそれだけで罰金を行う必要があり、単一のスペース

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

で空白を交換してください。

正規表現の文字列を使用して、照合しようとしているものを示すこの例を考えてみましょう。

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

リテラルスラッシュのペアには、少なくとも1つのスペースとそれに続くリテラルgが続きます。

+0

だからこそ、それは理にかなっていますが、問題の拡大は起こりそうにありませんでした。 RegExは私の頭を使いこなす。ありがとう!今度はRegExの次の質問へ。 – Gordon

関連する問題