正则表达式模式以验证Linux文件夹路径

afrey:

使用JAVA。我试图找到一种验证Linux文件夹路径(不包括文件名)的更优雅的方法

我到目前为止所拥有的是: "^\\/$|^((\\/([a-zA-Z0-9_-]+))+)$"

文件夹路径应仅包含以下字符:字母数字破折号下划线

测试用例

有效/匹配:

  • /
  • /abc
  • /abc/abc/abc/abc

无效/不匹配:

  • 空字符串
  • /abc/
  • /abc/abc/abc/abc/
hc_dev:

正则表达式问题

您提供的RegEx正在测试用例上。

甚至可以通过删除反斜杠\\和一对外部括号来减少它开始^和结束$仅需一次(围绕两个替代方案)。

使用正则表达式的可能解决方案

您可以在RegexPlanet.com 测试RegEx (单击Java按钮进行测试)

^/|(/[a-zA-Z0-9_-]+)+$

或同等功能(请参阅RegexPlanet上的演示

^/|(/[\w-]+)+$

解释: \w匹配一个单词字符(与相同[a-zA-Z0-9_],不匹配破折号)。

用Java代码实现:

public boolean isValidLinuxDirectory(String path) {
    Pattern linuxDirectoryPattern = Pattern.compile("^/|(/[a-zA-Z0-9_-]+)+$");
     return path != null && !path.trim().isEmpty() && linuxDirectoryPattern.matcher( path ).matches();
}

替代解决方案使用 File

注意isDirectory()上文档

返回: true当且仅当此抽象路径名表示的文件存在且为目录时;false除此以外

因此,只有在Linux机器上运行并且文件夹/目录存在时,它才可以验证您的要求(有效的Linux文件夹)。

public boolean isValidExistingDirectory(String path) {
     if (path == null || path.trim().isEmpty()) return false;
     File file = new File( path );
     return file.isDirectory();
}

扩展解决方案

如评论所述,root 特殊形式//也应有效。然后使用此RegEx:

^/|//|(/[\w-]+)+$

它支持:

  1. 根目录 /
  2. 根目录的特殊形式 //
  3. 任何非根目录,其名称由字母,数字,破折号或下划线组成(例如/abc/123/_abc-123

也可以看看

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Linux

如何从Linux终端使用正则表达式删除文件夹

来自分类Java

Java正则表达式匹配文件路径

来自分类Javascript

不带文件名的文件夹路径的正则表达式

来自分类Dev

模式验证中的正则表达式

来自分类Dev

如何在javascript中为文件夹名称创建正则表达式?

来自分类Dev

正则表达式以验证以下类型的模式

来自分类Dev

正则表达式匹配文件夹和所有子文件夹

来自分类Dev

正则表达式模式验证Angularjs2

来自分类Dev

Python:使用正则表达式模式递归获取文件的路径名

来自分类Dev

将目录更改为名称为正则表达式的文件夹

来自分类Dev

用于查找文件路径的正则表达式

来自分类Dev

使用正则表达式进行角度模式验证

来自分类Dev

正则表达式Windows路径验证器

来自分类Dev

正则表达式文件夹重定向包含相同的名称(创建循环)

来自分类Dev

使用正则表达式和模式验证密码

来自分类Dev

正则表达式匹配URL的深度只有一个文件夹

来自分类Dev

如果文件夹名称与正则表达式匹配,则使用Cmd findstr

来自分类Dev

CMD-检查正则表达式的文件夹路径

来自分类Dev

正则表达式从路径中排除文件夹

来自分类Dev

正则表达式排除URL重写中的文件夹

来自分类Dev

正则表达式模式:验证单个事件

来自分类Dev

匹配正则表达式的文件名,但在带通配符的文件夹中

来自分类Dev

在路径中查找最后一个文件夹名称的正则表达式

来自分类Dev

正则表达式匹配某些子文件夹,并忽略其子文件夹

来自分类Dev

在C ++中使用正则表达式排除子文件夹

来自分类Dev

如何编写包含正则表达式的文件路径

来自分类Dev

正则表达式以匹配文件夹结构中的有效路径

来自分类Dev

通过正则表达式搜索词grep多个文件夹的方法

来自分类Dev

正则表达式提取完整路径的文件夹名称的下划线后的最后一个字符

TOP 榜单

热门标签

归档