我正在检查字符串中是否有letter后跟colon。如果是这样,则将两者都剥离。F:/users/mark/ => /users/mark/这是我到目前为止所拥有的:
letter
colon
F:/users/mark/
/users/mark/
if(Pattern.matches("[a-zA-Z]:", path)) path = path.substring(2);
有没有人有更好的主意如何实现这一点?
luaexgnf1#
您可以用途:
path = path.replaceAll("^[a-zA-Z]:", "");
os8fio9y2#
您可以使用regex ^[^\/]*(.*)并捕获第一个组。
^[^\/]*(.*)
sourceString = sourceString.replaceAll("^[^\\/]*(.*)", "$1");
DEMO
输入
匹配信息
MATCH 1 1. [2-14] `/users/mark/`
d4so4syb3#
你可以通过简单的字符串方法来实现你的目标:
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 }
参见Java demo其中:
path.length() > 1
path
&& Character.isLetter(path.charAt(0))
&& path.charAt(1) == ':'
:
path.substring(2)
是的,不要忘记将结果赋给变量。
2cmtqfgy4#
有点晚了,但我想我应该把对我有用的东西加进去。
String path = "F:\\some\\path"; if(path.matches("^[a-zA-Z]:.*")) //checks for drive letter and colon path = path.split(":")[1]; //get everything after colon
4条答案
按热度按时间luaexgnf1#
您可以用途:
os8fio9y2#
您可以使用regex
^[^\/]*(.*)
并捕获第一个组。DEMO
输入
匹配信息
d4so4syb3#
你可以通过简单的字符串方法来实现你的目标:
参见Java demo
其中:
path.length() > 1
-如果path
长度大于1&& Character.isLetter(path.charAt(0))
-第一个字符是字母&& path.charAt(1) == ':'
-并且第二个字符是:
,path.substring(2)
-使用从第二个索引开始的子字符串。是的,不要忘记将结果赋给变量。
2cmtqfgy4#
有点晚了,但我想我应该把对我有用的东西加进去。