Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式来剥离驱动器号_Java_Regex - Fatal编程技术网

Java 正则表达式来剥离驱动器号

Java 正则表达式来剥离驱动器号,java,regex,Java,Regex,我正在尝试检查我的字符串中是否有字母后跟冒号 如果是的话,两个都脱光 F:/users/mark/=>/users/mark/ 这就是我到目前为止所做的: if(Pattern.matches("[a-zA-Z]:", path)) path = path.substring(2); 有人对如何实现这一点有更好的想法吗?您可以使用: path = path.replaceAll("^[a-zA-Z]:", ""); 您可以使用: path = path.replaceAll(

我正在尝试检查我的字符串中是否有
字母
后跟
冒号

如果是的话,两个都脱光

F:/users/mark/
=>
/users/mark/

这就是我到目前为止所做的:

if(Pattern.matches("[a-zA-Z]:", path))
        path = path.substring(2);
有人对如何实现这一点有更好的想法吗?

您可以使用:

path = path.replaceAll("^[a-zA-Z]:", "");
您可以使用:

path = path.replaceAll("^[a-zA-Z]:", "");

您可以使用regex
^[^\/]*(.*)
并捕获第一个组

sourceString = sourceString.replaceAll("^[^\\/]*(.*)", "$1");

输入

F:/users/mark/
匹配信息

MATCH 1
1.  [2-14]  `/users/mark/`

您可以使用regex
^[^\/]*(.*)
并捕获第一个组

sourceString = sourceString.replaceAll("^[^\\/]*(.*)", "$1");

输入

F:/users/mark/
匹配信息

MATCH 1
1.  [2-14]  `/users/mark/`

您可以通过简单的字符串方法实现您的目标:

String path = "F:/some/path";
if (path.length() > 1 && Character.isLetter(path.charAt(0)) && path.charAt(1) == ':') {
    path = path.substring(2);
    System.out.println(path); // this is for demo
}

其中:

  • path.length()>1
    -如果
    path
    长度超过1
  • &&Character.isleter(path.charAt(0))
    -第一个字符是一个字母
  • &&path.charAt(1)=':'
    -第二个字符是
  • path.substring(2)
    -使用从第二个索引开始的子字符串

是的,不要忘记将结果分配给变量。

您可以通过简单的字符串方法实现您的目标:

String path = "F:/some/path";
if (path.length() > 1 && Character.isLetter(path.charAt(0)) && path.charAt(1) == ':') {
    path = path.substring(2);
    System.out.println(path); // this is for demo
}

其中:

  • path.length()>1
    -如果
    path
    长度超过1
  • &&Character.isleter(path.charAt(0))
    -第一个字符是一个字母
  • &&path.charAt(1)=':'
    -第二个字符是
  • path.substring(2)
    -使用从第二个索引开始的子字符串

是的,不要忘记将结果分配给变量。

使用以下“^[a-zA-Z]:”这意味着您以驱动器号开头,后跟冒号。
path=path.replaceFirst(“^[a-zA-Z]:”,”)
匹配
不尝试检查某些子字符串是否匹配regex,而是检查整个字符串是否匹配它。您需要在正则表达式的末尾添加
*
,使其与字符串的其余部分相匹配,或者改用
Matcher.find()
。使用以下“^[a-zA-Z]:”表示以驱动器号开头,后跟冒号。
path=path.replaceFirst(^[a-zA-Z]:”,“”)
匹配
不尝试检查某些子字符串是否匹配regex,而是检查整个字符串是否匹配它。您需要在正则表达式的末尾添加
*
,使其与字符串的其余部分匹配,或者使用
匹配器.find()
。@Angelina我几乎可以肯定您将正则表达式放入了
匹配项中。不要。只需使用
path=path.replaceFirst(“^[a-zA-Z]:”,”)
@Angelina我几乎可以肯定你将正则表达式放入了
匹配项中。不要。只需使用
path=path.replaceFirst(“^[a-zA-Z]:”,”)