我们刚刚更改了2个ID的MS SQL数据库密码。我有超过50个运行数据库的asp.net Web应用程序,它们都需要更新连接字符串。是否有一个方便的正则表达式,我可以用来搜索服务器ID,用户名和密码?
这是一个很长的故事,但我需要能够匹配这3个元素,并且连接字符串不是全部采用相同的格式(有些在用户名之前有密码,反之亦然)。
这是我们的一个连接字符串的示例:
Data Source=dbserver;Initial Catalog=HOL;Persist Security Info=True;User ID=username;Password=password
我已经从regular-expressions尝试了这个,但我真的是正则表达式的新手。
\b(?:password\W+(?:\w+\W+){1,6}?user|user\W+(?:\w+\W+){1,6}?password)\b
编辑:我有一个可以使用的查找和替换工具(fnr.exe),我只需要一个正则表达式来查找字符串......
答案 0 :(得分:1)
以下是匹配
的单独正则表达式数据来源
\bData\hSource=\w+\b
用户ID
\bUser\hID=\w+\b
密码
\bPassword=\w+\b
您可以按如下方式组合它们(类似于您提供的示例):
\b(?:(User\hID=\w+);(Password=\w+)|(Password=\w+);(User\hID=\w+))\b
答案 1 :(得分:0)
以下正则表达式应该有所帮助:
/;?(Data Source|User ID|Password)=((?:&(?:[a-z]+|#[0-9]+);|[^;]){0,})/gi
作为奖励,这也将捕获HTML实体,例如&
。
答案 2 :(得分:0)
如果您只需要执行一次,我建议您只运行连续搜索并替换数据源(\bData\hSource=\w+\b
)用户ID(\bUser\hID=\w+\b
)和密码(\bPassword=\w+\b
) 。
编写一个匹配所有可能组合的正则表达式会更省力。