gpt4 book ai didi

java - 提取查询参数的正则表达式因日期时间字符串而失败

转载 作者:行者123 更新时间:2023-12-02 04:43:13 25 4
gpt4 key购买 nike

假设以下 SQL 命令:

update [TABLE] set [value] = 'UserName' where key1 = :param1 and key2 = :param2

我想从 SQL 中提取 :param1:param2。因此,我使用以下正则表达式来匹配 SQL 字符串:

:([\w.$]+|"[^"]+"|'[^']+')

这工作正常,除了当 SQL 字符串在引号 (") 或单引号 (') 之间包含冒号 (:) 时。

例如,我希望正则表达式匹配器仅向我返回以下查询的 :param1:param2:

 update [TABLE] set [value] = ':UserName' where key1 = :param1 and key2 = :param2
update [TABLE] set [value] = 'User=:UserName' where key1 = :param1 and key2 = :param2
update [TABLE] set [value] = '2015-04-26 21:59:24' where key1 = :param1 and key2 = :param2

因为值 :UserNameUser=:UserName2015-04-26 21:59:24 位于单引号之间。 ..

我尝试修改正则表达式,但似乎没有任何效果。我该怎么办?

最佳答案

/'.*?'|(:[^\b]+?\b)/g

您的结果将位于第 1 组(括号匹配)。

Demo of this regex .

编辑:根据下面讨论的奇怪之处: /'.*?'|(:\B+?\b)/g

关于java - 提取查询参数的正则表达式因日期时间字符串而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29933255/

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