正则表达式解析整个路径?

发布于 11-06 01:18 字数 80 浏览 1 评论 0原文

是否有一个正则表达式可以解析指向文件或文件夹的字符串(从根目录,例如 C:)?

语言是Javascript。

谢谢

Is there a regex which can parse a string which points to a file or folder (from the root e.g. C:)?

Language is Javascript.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天生の放荡2024-11-13 01:18:16

为什么不跳过正则表达式而只使用 split 呢?

var path = "C:\\Users\\Joe.Blow\\Documents\\Pictures\\NotPr0n\\testimage1.jpg"
var arrPath = path.split("\\");
var filename = arrPath[arrPath.length - 1];
var drive = arrPath[0];

ETC。

Why not skip the regex and just use split?

var path = "C:\\Users\\Joe.Blow\\Documents\\Pictures\\NotPr0n\\testimage1.jpg"
var arrPath = path.split("\\");
var filename = arrPath[arrPath.length - 1];
var drive = arrPath[0];

etc.

花开柳相依2024-11-13 01:18:16

嗯,实际上有几个,但这取决于你到底想解析什么。您想要类似:“C:/.../.../nameOfFile.extension”吗?或者没有文件名?您能更具体地说明问题吗?输入的是哪个?

我编写的代码非常简单,对于给定的路径,它为您提供没有根的路径。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestProgram {

    static String path = "C:\\Folder1\\Folder2\\file.extension";

    private static void parsePath() {
      String newPath = "";
      String root = "C:";
      Matcher regexMatcher;
      regexMatcher = Pattern.compile("\\\\").matcher(path);
      newPath = regexMatcher.replaceAll("/");
      regexMatcher = Pattern.compile(root).matcher(newPath);
      newPath = regexMatcher.replaceAll("");    
      System.out.println(newPath);
    }

    public static void main(String[] args) {
       parsePath();    
    }
}

输出是:

/Folder1/Folder2/file.extension

我不知道这是否是您想要的,但您只需要使用方法即可。你最终会找到解决方案。

Well, actually there are several, but it depends on what exactly you want to parse. Do you want something like: "C:/.../.../nameOfFile.extension"? Or without the name of the file? Can you be more specific about the problem? Which is the input?

I made this code, really simple, which for a given path, gives you the path without the root.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestProgram {

    static String path = "C:\\Folder1\\Folder2\\file.extension";

    private static void parsePath() {
      String newPath = "";
      String root = "C:";
      Matcher regexMatcher;
      regexMatcher = Pattern.compile("\\\\").matcher(path);
      newPath = regexMatcher.replaceAll("/");
      regexMatcher = Pattern.compile(root).matcher(newPath);
      newPath = regexMatcher.replaceAll("");    
      System.out.println(newPath);
    }

    public static void main(String[] args) {
       parsePath();    
    }
}

The output is:

/Folder1/Folder2/file.extension

I don't know if this is what you want, but you just have to play with methods. You will eventually reach the solution.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文