java - 正则表达式在 for 循环中查找 DAO

标签 java regex

我目前正在重构一个由其他人编写的程序。 我想找到 for 循环内的所有 DAO,并在可能的情况下将每个 DAO 更改为一次性数据库访问。

我已经尝试了以下正则表达式,但它无法准确找到我想要的内容。它只搜索 DAO 后面的循环。

for\s*\((.*\r\n)*?.*dao

它帮助我手动修复 DAO,但仍然剩下太多代码。

什么是在 for 循环中查找 DAO 的正则表达式?

更新

这是一个示例。

for (String userId : userIds) {
    User user = UserDao.select(userId);
    System.out.println(user);
}

最佳答案

我会使用这样的东西:

for\s+\(.*?\)\s*\{.*?dao.*?\}

请务必打开 dotall 标志,以便 . 也可以匹配换行符。测试一下 here .

关于java - 正则表达式在 for 循环中查找 DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333714/

相关文章:

c# - 如何使用 RegEx(或者我应该)提取起始字符串 '__' 和以 '__' 或 'nothing' 结尾的字符串

php - 转义字符串以在 preg_ 正则表达式中使用

java - Project Reactor 并行执行

java - 模拟不起作用

mysql - Regex MySQL - 匹配前两个字母,x 数字

javascript - 如何检查 Javascript 中的所有字母字符(包括特殊字符)?

java - 如何在根据开源配方构建的 HUB 上安装 Rappture Java 绑定(bind)?

java - 实例变量(基元)存储在java中的什么地方?无论如何堆栈与实例变量存储相关吗?

java - 激活/停用复选框 Java Swing

java - 正则表达式负向预测,意外结果