2016-11-08 5 views
0

私は実際にはpowershellの正規表現を初めて使っています。 Createプロシージャの最初の行を置き換えるには正規表現が必要です。オプションのブラケットを作るためのpowershell regexのオプション

ここでは、dboとプロシージャーの名前には、かっこを使用する場合と使用しない場合の2つの条件があります。ブラケットをオプションにする必要があります

CREATE PROCEDURE dbo.Airplane_RBMId 
CREATE PROCEDURE [dbo].[Airplane_RBMId] 

私が作ったpowershell regex iは、ブラケットでうまくいきます。

$Temp = $element -ireplace "\s*CREATE\s*PROCEDURE\s*\[dbo\]\.\[([^\]]+)\]","$CreateBlock" 
+0

'?'は、以前のトークンをオプションにします。 '\ [?' – wOxxOm

答えて

0
$element -replace '\s*CREATE\s*PROCEDURE\s*(\[dbo]|dbo)\.\[{0,1}(\S+)]{0,1}',$CreateBlock 
  • (\[dbo]|dbo)一致いずれか[dbo]又はdbo
  • \[{0,1}マッチ0又は1 [ブラケット。
  • (\S+)は、プロシージャ名として1つ以上の空白文字と一致します。
  • ]{0,1}は、0または1と一致します。]ブラケット。
関連する問題