正则表达式多个前瞻和Word排除

时间:2015-04-11 14:38:02

标签: javascript regex

我接近我想要的地方。 Javascript正则表达式:我需要匹配仅以数字开头的单词,不是某些保留单词('in','between','和','或')并且不包含在引号中。我几乎在那里,我似乎无法弄清楚如何否定我的保留词。很明显,这是SQL验证的一部分,我正在挑选字段名称以在单独的例程中验证它们。我可以使用多个表达式轻松剥离它们,但我认为我会做出学术上的努力并以这种方式尝试。 这就是我在的地方。帮助,建议,改进和解释都赞赏。

       \(?=([^\']*\'[^\']*\')*[^\']*$)+([A-z][0-9A-z][^\s\=\>\<\)\(]*)\gi

以下是一些测试用例:

(THIS >= CURRENTBORROWERBALANCE) [match CURRENTBORROWERBALANCE]
(THIS = 'anything') [match THIS]
(THIS BETWEEN '2007-01-01' and '2010-01-01') [match THIS]

以及指向测试用例和更新正则表达式的链接:http://regexr.com/3aq57

1 个答案:

答案 0 :(得分:2)

您可以将此(?=([^\']*\'[^\']*\')*[^\']*$)\b(?!and\b|in\b|between\b)[a-zA-Z]\w+globalcase-insensitive修饰符一起使用。

您可以将任何保留字添加到(?!and\b|in\b|between\b)(不要忘记边界)

请参阅demo