Regex,用于查找和替换连接字符串中的SQL Server用户名和密码
本文关键字:Server SQL 用户 密码 字符串 用于 查找 替换 连接 Regex | 更新日期: 2023-09-27 17:59:27
我们刚刚更改了2个ID的MS SQL数据库密码。我有50多个asp.net web应用程序在数据库中运行,它们都需要更新连接字符串。有没有一个方便的regex可以用来查找服务器ID、用户名和密码?
这是一个很长的故事,但我需要能够匹配这3个元素,并且连接字符串的格式不完全相同(有些字符串在用户名之前有密码,反之亦然)。
这是我们的一个连接字符串的例子:
Data Source=dbserver;Initial Catalog=HOL;Persist Security Info=True;User ID=username;Password=password
我已经从正则表达式中尝试过了,但我真的是regex的新手。
'b(?:password'W+(?:'w+'W+){1,6}?user|user'W+(?:'w+'W+){1,6}?password)'b
编辑:我有一个可以使用的查找和替换工具(fnr.exe),我只需要一个正则表达式来查找字符串。。。
以下是用于匹配的单独正则表达式
-
数据源
'bData'hSource='w+'b
-
用户ID
'bUser'hID='w+'b
-
密码
'bPassword='w+'b
您可以将它们组合如下(类似于您提供的示例):
'b(?:(User'hID='w+);(Password='w+)|(Password='w+);(User'hID='w+))'b
演示:https://regex101.com/r/bT3yI1/1
以下Regex应该会有所帮助:
/;?(Data Source|User ID|Password)=((?:&(?:[a-z]+|#[0-9]+);|[^;]){0,})/gi
作为奖励,这也将捕获HTML实体,例如&
。
测试时间:https://regex101.com/r/vE2tT0/2
如果你只需要做一次,我建议你只运行连续搜索并替换数据源('bData'hSource='w+'b
)用户id('bUser'hID='w+'b
)和密码('bPassword='w+'b
)。
编写一个匹配所有可能组合的正则表达式需要付出更多的努力。