正则表达式 - 如何匹配记事本++中文件中的所有选择查询

时间:2011-08-18 18:22:26

标签: sql regex notepad++

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

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

  • 'SELECT * FROM'
  • 'SELECT aWORD FROM'
  • 'SELECT FIRSTWORD,SECONDWORD,THIRDWORD FROM'

我尝试过以下正则表达式:

select (\w+)(,\s*\w+)* from

这个在notepad ++中不起作用。我做错了什么?

谢谢你的进步。 MANEL

3 个答案:

答案 0 :(得分:0)

基于你的正则表达式,它应该是这样的:

select[\*]*[\w+]*[,\s*\w+]*from

更新:在Notepad ++ 5.8.2上试过这个并且它可以工作。

由于上面的正则表达式是一个贪婪的表达式而5.8.2不支持非贪婪的正则表达式,所以你可能必须升级到v5.9.3。 尝试使用下面的正则表达式,它确实显示非贪婪的结果:

select.+?from

答案 1 :(得分:0)

使用它:

['"]\s*select[*,\s\w]+from\s*['"]

它也匹配无效的查询(我认为这不是问题)但是尊重所需的引号(以及双引号)
也许你想在搜索

中添加=

答案 2 :(得分:0)

Notepad ++构建于scintilla之上并使用POSIX正则表达式,请查看Regular Expressions in SciTE

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

select[a-z\*, ]+from

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