【问题标题】:Java regex to replace file path based on OSJava正则表达式替换基于操作系统的文件路径
【发布时间】:2012-10-13 22:16:37
【问题描述】:

我不太确定是否有任何正则表达式可以替换那些东西:

这是从Linux机器保存的xml文件中读取的字符串值

<pcs:message schema="models/HL7_2.5.model"/>

这是保存在 Windows 机器中的那个

<pcs:message schema="model\HL7_2.5.model"/>

这就是文件在 Linux 中导出并在 Windows 中导入时在 eclipse 中出错的原因,反之亦然。

是否有任何正则表达式来查找和替换字符串中的值(斜杠和反斜杠)? (不是 XML 解析)基于工作操作系统?

提前致谢

【问题讨论】:

    标签: java regex replace platform


    【解决方案1】:

    【讨论】:

    • 你的意思是file.separator(通常是/或\)? path.separator 是类路径分隔符,在 Linux 上是 :,在 Windows 上是 ;
    【解决方案2】:

    这应该注意修复斜线:

    String str = xml.replaceAll("\\\\|/", System.getProperty("file.separator"));
    

    【讨论】:

    • 先谢谢你的回答!但这会导致异常:java.lang.StringIndexOutOfBoundsException: String index out of range: 1
    • 这不应该发生,我在发布之前已经实际测试过了。在此处查看此代码的现场演示:ideone.com/TlzlRa
    【解决方案3】:

    str = str.replaceAll("\\\\|/", "\\"+System.getProperty("file.separator"))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-03
      • 2020-10-16
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 2014-07-05
      • 2012-11-25
      相关资源
      最近更新 更多