我想用一个正斜杠而不是两个正斜杠来分隔URL。
http://www.eclipse.org/swt/snippets/
我想在URL上方拆分为http://www.eclipse.org,swt,摘要。
代码:
url = http://www.eclipse.org/swt/snippets/;
String[] truncUrl = url.split("/");
请使用正则表达式指导我。
谢谢
答案 0 :(得分:2)
您要组合使用负向后看(即“不跟随”)和负向前看(即“不跟随”)。因此,您将分割没有/
且前面没有/
的任何/
。
(?<!
和)
分隔(?!
和)
分隔所以您想要的正则表达式为(?<!/)/(?!/)
答案 1 :(得分:0)
作为附加答案,
您可以使用此表达式((?:http(s)?:\/\/)?[\w.&?=%#+:-]+)
示例:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.List;
import java.util.ArrayList;
public class MyClass {
public static void main(String args[]) {
String url = "https://stackoverflow.com/questions/51016377/java-string-spit-using-regex-with-single-forward-slash-not-followed-by-a-slash";
Pattern rgx = Pattern.compile("((?:http(s)?://)?[\\w.&?=%#+:-]+)");
Matcher m = rgx.matcher(url);
List<String> list = new ArrayList<>();
while (m.find())
list.add(m.group(1));
list.forEach(System.out::println);
}
}
输出:
https://stackoverflow.com
questions
51016377
java-string-spit-using-regex-with-single-forward-slash-not-followed-by-a-slash