JavaScript中的正则表达式用于查找参数

li9yvcax  于 2023-05-05  发布在  Java
关注(0)|答案(4)|浏览(79)

我试图在JavaScript中编写一个正则表达式,以捕获PostgreSQL字符串中的所有命名参数,并将其放入表中
假设我们有

var query="SELECT table.data FROM table JOIN table2 ON table2.id=table.id_tab2 WHERE table2.field <> :parm1::int GROUP BY table.data HAVING table.data position(:docType::text in document_type) <> 0

var tab=new Array();

//

我需要rs放入选项卡的所有参数:“param1::int“和“docType::text“我试着自己做,但没有成功:(http://regexr.com?31nok

2exbekwf

2exbekwf1#

像这样吗:(\w+::\w+)

ee7vknir

ee7vknir2#

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

j0pj023g

j0pj023g3#

在a-Z之间可能会有奇怪的东西,所以只需要使用不区分大小写的[a-z]或[a-zA-Z]。我想你可能想要一个全局匹配(找到所有结果)。多行是另一回事,它使.匹配\n,这对你没有帮助,我可以看到。试试这个:http://regexr.com?31not

wsewodh2

wsewodh24#

当我尝试:([^: ]+::[^: ]+)(:[^: ]+::[^: ]+)时,我看不出有什么区别-冒号在两种情况下都匹配。
但是我找到了其他的方法

(?!:)([a-z0-9_-]+::[a-z0-9_-]+)

效果很好第一部分(?<=:) determine“匹配主表达式之前的组,但不将其包含在结果中。”
谢谢大家的回答;)

相关问题