1. ホーム
  2. string

[解決済み] PowerShell の " (" - 中括弧 ) の分割について

2022-03-08 14:21:43

質問

('(スペースと中括弧)で分割しようとしています。

サブスクリプションの名前は維持したいが、それ以降のものはすべて破棄したい。

$string = 'SUB-AAD (e775'
$string.tostring().split('`` (')[0]

これは大丈夫です


$string = 'Active Directory (758239'
$string.tostring().split('`` (')[0]

これは「Active」しか表示されていませんが、特に指定していないのに、スペースでも分割されているようです。

多分、私は' ('のインスタンスを見つけて、その位置以降のすべてを破棄することができますが、方法はわかりません。

どのように解決するのですか?

への 補完 スティーブンの親切な回答 PowerShell の正規表現に基づいた -split オペレータ を.NETの [string] 型の System.String.Split() メソッド .

の代わりとして -split を考えてみましょう。 文字列からサフィックスを削除するための便利なイディオムです。 をベースに、正規表現に基づく -replace 演算子 :

PS> 'Active Directory (758239' -replace ' \(.*'
Active Directory

注)substitution-textの引数を渡さないため。 '' が効果的に使われ、結果的に 除去 を出力文字列から削除します。 -replace ' \(.*' とは暗黙のうちに同じです。 -replace ' \(.*', ''