使用正则表达式检查路径是否绝对

时间:2014-11-19 04:09:15

标签: java regex

我正在尝试使用正则表达式(PatternMatcher类确定路径是否绝对。

我的要求是:

  1. 路径应以任何字符开头,后跟":"和" \" (例如C:)
  2. 它可以以" \"
  3. 开头
  4. 它可以以" /"
  5. 开头

    我写了这个正则表达式:"^((?i)[a-z]):\\.*",但这似乎不起作用。

    我无法使用path.isAbsolute,因为我需要一种独立于平台的方法来检测绝对路径。

    你能告诉我那个表达有什么问题吗?

    由于

2 个答案:

答案 0 :(得分:0)

在java正则表达式中,要匹配文字\符号,您需要将其转义三次。 (?i)不区分大小写的修饰符和此[\\\\/]匹配文字反斜杠或正斜杠。

"(?i)^[a-z]:\\\\.*"

示例:

System.out.println("C:\\temp".matches("(?i)[a-z]:\\\\.*"));   // true
System.out.println("C:/temp".matches("(?i)[a-z]:[\\\\/].*")); // true

答案 1 :(得分:0)

这应涵盖您所有必需的案件:

"^(([a-zA-Z]:)?\\\\|/).*"

它匹配以(^)开头(|)与

的路径
  • 反斜杠(\\\\),可选地以字母和冒号(([a-zA-Z]:)?)开头;或
  • 正斜杠(/