我试图在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
4条答案
按热度按时间2exbekwf1#
像这样吗
:(\w+::\w+)
ee7vknir2#
(:[a-zA-Z0-9]+::[a-zA-Z0-9]+)
j0pj023g3#
在a-Z之间可能会有奇怪的东西,所以只需要使用不区分大小写的[a-z]或[a-zA-Z]。我想你可能想要一个全局匹配(找到所有结果)。多行是另一回事,它使
.
匹配\n
,这对你没有帮助,我可以看到。试试这个:http://regexr.com?31notwsewodh24#
当我尝试
:([^: ]+::[^: ]+)
和(:[^: ]+::[^: ]+)
时,我看不出有什么区别-冒号在两种情况下都匹配。但是我找到了其他的方法
效果很好第一部分
(?<=:)
determine“匹配主表达式之前的组,但不将其包含在结果中。”谢谢大家的回答;)