我正在尝试在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();
//
我需要把所有参数放入标签:“param1::int
”和“docType::text
”我尝试自己做但没有成功:( http://regexr.com?31nok
这样的事情? :(\w+::\w+)
和(:[a-zA-Z0-9]+::[a-zA-Z0-9]+)
a-Z之间可能有奇怪的东西,所以只需使用不区分大小写的[a-z]或[a-zA-Z]。我想你可能想要一个全局匹配(找到所有结果)。多线是别的东西,它使.
匹配\n
,这对我看不到你的帮助。试试这个:http://regexr.com?31not
我不知道postgreSQL,但我想我得到了你的问题的要点。
这是对的:http://refiddle.com/2tc?
当我尝试:([^: ]+::[^: ]+)
和(:[^: ]+::[^: ]+)
我看到没有区别 - 冒号在两种情况下匹配。
但是我发现了其他一些方法
(?!:)([a-z0-9_-]+::[a-z0-9_-]+)
工作得很好。第一部分(?<=:)
确定“在主表达式之前匹配一个组而不在结果中包含它”。
谢谢大家的回答;)