PowerShellの基本:特定の文字で行末を定義する

PowerShellで文字列が特定の文字で終わるか、文字列で始まるかを判断できることを知っていますか? Thomas Raynerは、以前CANITPRO.NETで正規表現、またはより単純に正規表現を使用するのがいかに簡単かを共有していました。











MSP、 Lev Bulanovを翻訳していただきありがとうございます。



以下の例を考慮してください。







'something\' -match '\\$' #returns true 'something' -match '\\$' #returns false '\something' -match '^\\' #returns true 'something' -match '^\\' #returns false
      
      





最初の2つの例では、スクリプトは行がバックスラッシュで終わるかどうかを確認します。 最後の2つの例では、スクリプトは文字列をチェックして、スラッシュで始まるかどうかを判断します。



最初の2つの正規表現パターンは「\\ $」のようになります。 これはどういう意味ですか? さて、最初の部分\\は「バックスラッシュ」を意味します(\はエスケープ文字であり、基本的にエスケープ文字をエスケープするためです。$の最後の部分は行末シグナルです。実際、「最後には何もありません。行にあるのはバックスラッシュです」と私たちはまさに探しています。







次の2つの例では、\\を行の先頭に移動し、$ではなく^で開始しました。^は行を開始するためのシグナルだからです。







次のようなことができます:







 $dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\'
      
      





ここでは、「bears」行がバックスラッシュで終わるかどうかを確認するためにスクリプトがチェックし、そうでない場合は追加します。



All Articles