在我的 java 文件中,有许多 sql 查询分配给 java 字符串,例如:
/* ... */
String str1 = "SELECT item1, item2 from table1 where this=that and MYWORD=that2 and this3=that3";
/* ... */
String str2 = "SELECT item1, item2 from table1 where this=that and" +
" MYWORD=that2 and this3=that3 and this4=that4";
/* ... */
/* ... */
String str3 = "SELECT item1, item2 from table2 where this=that and this2=that2 and" +
" this3=that3 and this4=that4";
/* ... */
String str4 = "SELECT item1, item2 from table3 where this=that and MYWORD=that2" +
" and this3=that3 and this4=that4";
/* ... */
String str5 = "SELECT item1, item2 from table4 where this=that and this2=that2 and this3=that3";
/* ... */
现在我想找出其中不包含单词 'MYWORD' 的 'SELECT...' 查询。
从我之前的一个 S/O 问题中,我得到了如何查找所有“ SELECT...
”查询的答案,但我需要扩展该解决方案以找到不包含特定单词的那些。
我尝试了SELECT(?!.*MYWORD).*;
找不到多行查询的正则表达式(如上面的str3),只找到单行查询。
我还尝试了SELECT[\s\S]*?(?!MYWORD).*(?<=;)$
查找所有查询的正则表达式,但无法确定查询中是否存在“MYWORD”一词。
我知道我非常接近解决方案,但仍然无法弄清楚。任何人都可以帮助我吗?(我在 Windows 上使用记事本++)