Ruby正则表达式搜索

时间:2014-09-24 09:33:23

标签: sql ruby regex sqlite

我有这样一个字符串:

select count(*) from infos where pk1 = 'Information' and (pk3 = 'USA' or pk3 = 'Afrika') and value_string = 'book';

这是一个SQL语句,我必须从给定的语句中找到pk1,pk3和value_string的值,因为它们可能因语句而异。 (在这个例子中,我想找到pk1的值,对于pk3s来说是'信息'它们是' Afrika' USA')

我的想法是使用(pk1|pk3|value_string)((\W)*|(\d)*)(\w)*之类的正则表达式。

由于用户会输入一个声明,因此它可以采用不同的形式,因为" ... pk1 ='信息' "或" ... pk1 ='信息'"等等。

我对我的正则表达不太满意,听取其他建议会非常有帮助。

提前致谢

PS:sqlite3 sql

1 个答案:

答案 0 :(得分:-1)

(?:pk(?:1|3)|value_string) = '([^']+)'

DEMO