【问题标题】:How to find files or folders using regular expression from list of paths如何使用正则表达式从路径列表中查找文件或文件夹
【发布时间】:2016-09-30 20:28:02
【问题描述】:

假设我在数据库中有以下路径

Emp/Test/
Emp/bi testing/1.txt
Emp/bi testing/2.txt
Emp/bi testing/1/pipe.txt
Emp/Test/Raj/
Emp/Test/Raj/1.txt
Emp/Test/Somu/
Emp/Test/Pr/
Emp/Test/R.txt
Emp/Test/P.txt

我需要帮助来构建正则表达式

  1. 列出给定路径的所有文件和文件夹,不包含除给定文件夹路径之外的多级子目录或子目录文件。

示例输入:Emp/Test/

示例输出:

Emp/Test/Raj/
Emp/Test/Somu/
Emp/Test/Pr/
Emp/Test/R.txt
Emp/Test/P.txt
  1. 列出给定路径的所有文件和文件夹,包括给定文件夹路径之外的子目录和子目录文件。

示例输入:Emp/Test/

示例输出:

Emp/Test/Raj/
Emp/Test/Raj/1.txt
Emp/Test/Somu/
Emp/Test/Pr/
Emp/Test/R.txt
Emp/Test/P.txt

谢谢。

【问题讨论】:

  • 当您说“在数据库中”时,这是否有 SQL 解决方案(而不是您标记的 Java)?

标签: java


【解决方案1】:

对于案例1:你应该有类似的东西:

Emp\/Test\/(\w+\.\w+|([\w]+\/{1}))\n

对于情况 2,只有一个加号可以多次匹配递归目录。

Emp\/Test\/(\w+\.\w+|([\w]+\/{1}))+\n

解释:

  • Emp/Test/ 已转换为 'Emp/Test/' 以转义字符 /
  • \w+\.\w+ 匹配一个文件。
  • [\w]+\/{1}匹配一个目录
  • 最后的+代表多次申请前一组。
  • \n 是换行符

【讨论】:

  • 第一个结果只有 Emp/Test/Somu/ 这是错误的
  • 非常感谢 Didier..你能给我一个类似的案例 2 的工作示例
  • 只需在正则表达式中添加加号:regex101.com/r/L7E5e6/2,如果您的问题不再存在,请考虑将其标记为已解决。
猜你喜欢
  • 2018-08-21
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
相关资源
最近更新 更多