我编写了一个正则表达式来匹配 SQL 连接字符串的一部分。在第一个规范中,初始目录等被强制不包含特殊字符。所以我有
string strConn = "Data Source=VAIOE;Initial Catalog=SomeTextOnlyCatname;Integrated
Security=True;Persist Security Info=True;MultipleActiveResultSets=True;Connect Timeout=0;";
Regex databaseNameRegex =
new Regex(@"(?i)\b(Initial\sCatalog|Database)\b\s?=\s?(\w+\s*)*;?");
现在,我需要匹配名称可能带有符号、标点符号等的部分。例如
string strConn = "Data Source=VAIOE;Initial Catalog=N3wC@t@l0gName*6Symbols;Integrated
Security=True;Persist Security Info=True;MultipleActiveResultSets=True;Connect Timeout=0;";
我想返回的地方Initial Catalog=N3wC@t@l0gName*6Symbols
。
我试过了
Regex databaseNameRegex =
new Regex(@"(?i)\b(Initial\sCatalog|Database)\b\s?=\s?(\w+\p{P}*\p{M}*\p{Z}*\s*)*;?");
但这失败了,因为连接字符串中存在分号。处理这个问题的最佳正则表达式是什么?
谢谢你的时间。