Java 按路径拆分正则表达式
如果我有这个:Java 按路径拆分正则表达式,java,regex,string,split,Java,Regex,String,Split,如果我有这个: thisisgibberish 1234 /hello/world/ more gibberish 43/7 /good/timing/ just onemore 8888 /thanks/mate Java String.split()方法中的正则表达式是什么来获取每行的路径 即 做 myString.split("\/[a-zA-Z]") 导致每/h、/w、/g、/t和/m发生一次拆分 我该如何编写一个正则表达式,使其每行只拆分一次,同时只捕获路径 提前谢谢。
thisisgibberish 1234 /hello/world/
more gibberish 43/7 /good/timing/
just onemore 8888 /thanks/mate
Java String.split()方法中的正则表达式是什么来获取每行的路径
即
做
myString.split("\/[a-zA-Z]")
导致每/h、/w、/g、/t和/m发生一次拆分
我该如何编写一个正则表达式,使其每行只拆分一次,同时只捕获路径
提前谢谢。为什么要分手?我认为在这里进行比赛更好,请尝试以下表达式:
(?<=\s)(/[a-zA-Z/])+
(?这使用split()
:
String[] split = myString.split(myString.substring(0, myString.lastIndexOf(" ")));
或
您必须首先删除前导垃圾,然后在中间的垃圾上拆分:
String[] paths = str.replaceAll("^.*? (?=/[a-zA-Z])", "")
.split("(?m)((?<=[a-zA-Z]/|[a-zA-Z])\\s|^).*? (?=/[a-zA-Z])");
产出(达到要求):
为什么您必须split()
?如何只获取/\\S*$
的匹配项?/Thank/mate
是否应该在结尾处有一个“/”?路径是否包含空格或换行符?整行是否会乱码?
myString.split(myString.substring(0, myString.lastIndexOf(" ")))[1]; //works for current inputs
String[] paths = str.replaceAll("^.*? (?=/[a-zA-Z])", "")
.split("(?m)((?<=[a-zA-Z]/|[a-zA-Z])\\s|^).*? (?=/[a-zA-Z])");
String str = "thisisgibberish 1234 /hello/world/\nmore gibberish 43/7 /good/timing/\njust onemore 8888 /thanks/mate";
String[] paths = str.replaceAll("^.*? (?=/[a-zA-Z])", "")
.split("(?m)((?<=[a-zA-Z]/|[a-zA-Z])\\s|^).*? (?=/[a-zA-Z])");
System.out.println( Arrays.toString( paths));
[/hello/world/, /good/timing/, /thanks/mate]