2016-11-08 2 views
0

Я на самом деле новичок в регулярном выражении powershell. Мне нужно регулярное выражение для замены первой строки процедуры Create.Опции опции powerhell regex для создания скобки необязательно

CREATE PROCEDURE dbo.Airplane_RBMId 
(
@IN_AirplaneID INT, 
@IN_RegionBusinessModelID INT 
) 
AS 
BEGIN 
SET NOCOUNT ON; 

Здесь могут быть два условия, при которых имя dbo и имя процедуры могут быть с или без кронштейна. Поэтому необходимо сделать кронштейн опциональным

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

Регулятор Powerhell, который я сделал, отлично работает с кронштейном.

$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+) соответствует одному или нескольким небелым пространствам в качестве имени процедуры.
  • ]{0,1} соответствует 0 или 1 ] кронштейн.
Смежные вопросы