我接近我想要的地方。 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
答案 0 :(得分:2)
您可以将此(?=([^\']*\'[^\']*\')*[^\']*$)\b(?!and\b|in\b|between\b)[a-zA-Z]\w+
与global
和case-insensitive
修饰符一起使用。
您可以将任何保留字添加到(?!and\b|in\b|between\b)
(不要忘记边界)
请参阅demo。