Заменить источник данных в строке соединения - PullRequest
0 голосов
/ 23 мая 2019

В этой строке:

"Data Source=srv1-a.be.com;Initial Catalog=db1;Provider=SQLNCLI11;Integrated Security=SSPI;"

Я хотел бы заменить имя источника данных на localhost независимо от имени источника данных сценарием PowerShell.

С помощью следующего кода строка обрезается после localhost!
Я получаю результат & rarr; Data Source=localhost.

"Data Source=srv1-a.be.com;Initial Catalog=db1;Provider=SQLNCLI11;Integrated Security=SSPI;" -replace  '(?<grp1>Data Source=)(.*)', '${grp1}localhost'

Результат должен быть:

"Data Source=localhost;Initial Catalog=db1;Provider=SQLNCLI11;Integrated Security=SSPI;"

1 Ответ

0 голосов
/ 23 мая 2019

Я немного изменил вашу -Replace операцию:

"Data Source=srv1-a.be.com;Initial Catalog=db1;Provider=SQLNCLI11;Integrated Security=SSPI;" -replace '(?<=Data Source=)[^;]+','localhost'

Я использую положительный взгляд за (?<=), чтобы найти строку Data Source= и установить позицию в этом месте (символ сразу после =). [^;]+ соответствует одному или нескольким последовательным символам, которые не ; от текущей позиции. Тогда мы просто заменяем совпавшую строку на localhost. В результате сопоставляется и обновляется только имя сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...