Sql 如何在记事本中匹配文件中的所有select查询++

Sql 如何在记事本中匹配文件中的所有select查询++,sql,regex,notepad++,Sql,Regex,Notepad++,我正在尝试提取文件中的所有select查询。实际上,我需要知道脚本中有多少select查询。为此,我使用记事本++ 我在以下配置中查找字符串: “选择*自” '从中选择一个字' '从中选择第一个字、第二个字、第三个字' 我已尝试使用以下正则表达式: select (\w+)(,\s*\w+)* from 这个在记事本++中不起作用。我做错了什么 提前谢谢你。 Manel根据您的正则表达式,它应该是: select[\*]*[\w+]*[,\s*\w+]*from 更新:在记事本++5.8.2

我正在尝试提取文件中的所有select查询。实际上,我需要知道脚本中有多少select查询。为此,我使用记事本++

我在以下配置中查找字符串:

“选择*自” '从中选择一个字' '从中选择第一个字、第二个字、第三个字' 我已尝试使用以下正则表达式:

select (\w+)(,\s*\w+)* from
这个在记事本++中不起作用。我做错了什么

提前谢谢你。
Manel

根据您的正则表达式,它应该是:

select[\*]*[\w+]*[,\s*\w+]*from
更新:在记事本++5.8.2上尝试了这个,它可以工作

由于上面的正则表达式是贪心表达式,5.8.2不支持非贪心正则表达式,您可能需要升级到贪心正则表达式。 尝试使用以下正则表达式,但它确实显示了非贪婪结果:

select.+?from
使用以下命令:

['"]\s*select[*,\s\w]+from\s*['"]
它还匹配无效的查询,我认为这不是问题,但也尊重所需的引号和双引号
也许您想在搜索中添加=Notepad++是在闪烁体之上构建的,并使用POSIX正则表达式,请看

根据您的示例,您可能正在寻找:

select[a-z\*, ]+from

我已经在Notepad++5.9上对此进行了测试,它与您提供的示例相匹配。

您是否使其不区分大小写?我可能错了,因为我以前从未使用过记事本+,但我认为select和notepad不一样SELECT@BryceSiedschlaw:我只是在不区分大小写的情况下试过,也不起作用。“现在正在考虑一个解决方案……”博尔特钟。将选择?从工作中?我敢打赌记事本++在量化子模式方面有困难…@Bryce:是的,尽管这是一个非常宽容的正则表达式。为了不扭曲结果,每个语句都必须在自己的行中进行贪婪匹配。只是一个提示,谢谢。我刚试过这个,但在“select”之后和“from”之前有空格。你的解决方案很有效。但我也遇到过这样的情况,即它匹配许多顺序sql查询。例如:从。。。从…删除。。。。从知道如何分隔字符串的人中选择*?此外,字符串从“select”开始,到“from”结束。感谢您的帮助。您是对的。。记事本++5.8不支持非贪婪正则表达式。我相信v5.9可能有一个更新的闪烁引擎。需要检查。在记事本++v5.9.3中尝试过,它确实支持非贪婪正则表达式。如果您确定您的文本查询始终为“select”和“terminates as from”,则更严格的正则表达式可以不使用这两个\s*