gpt4 book ai didi

javascript - 正则表达式:匹配 MSSQL 连接字符串中的密码,考虑引号换行

转载 作者:行者123 更新时间:2023-11-30 19:11:12 31 4
gpt4 key购买 nike

我正在处理不同格式的 MSSQL 连接字符串,我需要能够提取密码,无论它是否包含在(单引号或双引号)中。我还需要确保,如果密码包含引号或分号,我将捕获整个密码,不带引号。如果密码开头有多个引号,我需要捕获除第一个以外的所有引号。

到目前为止,我已经构建了以下正则表达式:

/(?<=Password=["']?).+?(?=["'];|["';]?$)/gim

这个 RegEx 捕获一个未包装的密码 (...Password=foobar;...::foobar) 但也捕获包装密码中的第一个引号 (...Password= "foobar";...::"foobar) 或者,如果我删除 ? 如下所示,我会正确捕获包装的密码,但我会错过未包装的密码。

/(?<=Password=["']).+?(?=["'];|["';]?$)/gim

理想情况下,我希望无需额外的 Javascript 即可完成此操作。问题被标记为 Javascript,因为那是我正在使用的引擎。我知道如果密码以引号开头我可以子字符串化,但目标是找到 RegEx 解决方案。

这是一个带有一些示例测试用例的正则表达式:https://regexr.com/4n2lt

提前致谢。

最佳答案

无限宽度后视实际上是这样工作的,通常这样使用:确保有一些特定的模式不紧挨着所需的模式。

因此,lookbehind 末尾的可选模式总是出现在消耗的匹配中。

您应该改用消费模式:

/Password=["']?(.*?)(?:["'];|["';]?$)/gim

参见 regex demo , 提取第 1 组值。

关于javascript - 正则表达式:匹配 MSSQL 连接字符串中的密码,考虑引号换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58456133/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com