gpt4 book ai didi

javascript - 冒号后的正则表达式捕获绑定(bind)参数

转载 作者:行者123 更新时间:2023-11-29 19:52:52 24 4
gpt4 key购买 nike

我正在尝试匹配冒号 : 之后的子字符串,而不匹配冒号。它应该很简单。给定

select * from table where name=:name, id = :id order by :order_by limit :limit

它应该匹配

name
id
order_by
limit

然而,它是匹配的

:name
:id
:order_by
:limit

我使用的正则表达式是

:([a-zA-Z0-9_]+)

但我也试过了

(?::)([a-zA-Z0-9_]+)

根据 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-non-capturing-parentheses .

有人可以帮助我吗?

最佳答案

您的正则表达式应该可以工作。假设您使用的是 JavaScript,您可以在 matches 数组中收集这样的结果:

var myRe = /:(\w+)/g;
var str = "select * from table where name=:name, id = :id order by :order_by limit :limit";
var matches = [];
var myArray;
while ((myArray = myRe.exec(str)) !== null) {
matches.push(myArray[1]);
}

参见:http://jsfiddle.net/6CB5Y/1/

myArray 是一个数组,包含整个匹配项(例如“:name”)及其所有带括号的子字符串匹配项(如果有)(例如“name”)。因此,使用 myArray[1] 仅收集带括号的匹配项。

关于javascript - 冒号后的正则表达式捕获绑定(bind)参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17137509/

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