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

时间:2012-08-03 12:04:57

标签: javascript regex postgresql

我正在尝试在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

5 个答案:

答案 0 :(得分:1)

这样的事情? :(\w+::\w+)

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我不知道postgreSQL,但我认为我得到了你的问题的主旨。

这是正确的:http://refiddle.com/2tc

答案 4 :(得分:0)

当我尝试:([^: ]+::[^: ]+)(:[^: ]+::[^: ]+)时,我看到没有区别 - 在两种情况下冒号都匹配。

然而我发现了一些其他方式

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

完美无缺。 第一部分(?<=:)确定“在主表达式之前匹配一个组而不将其包含在结果中。”

谢谢大家的回答;)