如何使用regex在数据连接中获取密码值
我需要使用正则表达式从db连接字符串中获取密码值 这是我当前的正则表达式如何使用regex在数据连接中获取密码值,regex,Regex,我需要使用正则表达式从db连接字符串中获取密码值 这是我当前的正则表达式*;(?i)密码=([^;]*)。 只有在没有任何的情况下,这才有效字符 add key="myKey" value="Data Source=MyDataSource;Initial Catalog=MyDB;User ID=test-user;Password=pA&-pass; unicode=True" 但如果有,则失败字符 add key="myKey" value="Data Source=MyData
*;(?i)密码=([^;]*)
。
只有在没有任何的情况下,这才有效密码中的代码>字符
add key="myKey" value="Data Source=MyDataSource;Initial Catalog=MyDB;User ID=test-user;Password=pA&-pass; unicode=True"
但如果有,则失败密码中的代码>字符
add key="myKey" value="Data Source=MyDataSource;Initial Catalog=MyDB;User ID=test-user;Password=pass>; unicode=True"
简明的
因为有人可以创建一个密码,比如,所以你的代码总是有办法破解的;密码=
,这样您的字符串实际上是;密码=;密码=代码>
假设这是不可能的(并且假设某人不可能使用类似的变体,例如密码的以下部分格式;s=
,其中s
是任何单词或空格字符),这应该对您有效
密码
输出
解释
(?很好,即使密码是连接字符串的最后一个属性,也是匹配的。谢谢您,先生。我会让您知道这是否有效。;password=;password=;有可能发生这种情况。@istudent,如果您想知道;password=
(包括它)之前的所有内容您可以使用*;Password=
而不是(?)?
(?<=;Password=)(?:(?!;[\w ]+=).)*
add key="myKey" value="Data Source=MyDataSource;Initial Catalog=MyDB;User ID=test-user;Password=pA&-pass; unicode=True"
add key="myKey" value="Data Source=MyDataSource;Initial Catalog=MyDB;User ID=test-user;Password=pass>; unicode=True"
pA&-pass
pass>