【问题标题】:How to select a file path using regex如何使用正则表达式选择文件路径
【发布时间】:2009-05-04 20:11:58
【问题描述】:

我想创建一个 java 正则表达式,用于选择文件路径中从 file: 到最后一个正斜杠 (/) 的所有内容。这样我就可以用不同的路径替换它。

<!DOCTYPE "file:C:/Documentum/XML%20Applications/joesdev/goodnews/book.dtd"/>
<myBook>cool book</myBook>

有人有什么想法吗?谢谢!!

【问题讨论】:

    标签: java xml regex


    【解决方案1】:

    您只想转到结束引号之前的最后一个斜杠,对吗?如果是这样:

    file:[^"]+/

    (字符串“file:”,然后是除“之外的任何内容,以 / 结尾)
    正确转义:

    String regex = "file:[^\"]+/";
    

    【讨论】:

    • 这是我想出的,但太慢了,无法在您面前发布。
    【解决方案2】:

    您可以尝试自己处理此问题,但更好的方案是只选择引号之间的部分并使用 java.util.File 将目录名与文件名分开。这样您就不必担心 / vs \ 或各种转义字符。

    【讨论】:

      【解决方案3】:
      String newPath = "C:/Documentum/badnews";
      String originalPath = "<!DOCTYPE \"file:C:/Documentum/XML%20Applications/joesdev/goodnews/book.dtd\"/>";
      System.out.println(originalPath.replaceFirst("file:C:((/[/\\w%]+))", newPath));
      

      【讨论】:

        【解决方案4】:

        试试这个:

        "file:.*/[^/]*"/&gt;

        【讨论】:

        • 谢谢...是否可以不包括“goodnews/”以外的任何内容
        • 您需要使用 ()s 对您想要的内容进行分组,然后从生成的匹配对象中获取适当的组。
        猜你喜欢
        • 1970-01-01
        • 2017-04-08
        • 2018-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-03
        • 2014-08-03
        相关资源
        最近更新 更多