2016-07-22 173 views
-4

我有一个字符串,它包含由|像这样:拆分多个分隔符

http://...|http://...|http://...

但某些URL里面我可以有caracheter |,所以我可以.split分割它(“| HTTP://”),但问题是,某些URL里面包含了另一个网址,这样

http://...|http://..=http://...=http://...|http://...=http%25253A%25252F%25252F...

我那么,怎样才能使用正则表达式拆分通过|http:// or =http:// or =http%25253A%25252F%25252F

+2

分享你的研究可以帮助大家。告诉我们你试过的东西以及为什么 它不符合你的需求。这表明你已经花时间 试图帮助自己,它使我们避免重申明显的答案, ,最重要的是它可以帮助您获得更具体和相关的答案! 另请参阅[如何问](http://stackoverflow.com/questions/how-to-ask) –

+0

对我的答案的任何反馈? –

回答

2

您可以使用下面的代码:

String str = "http://www.google.com|https://support.microsoft.com/en-us/kb/301982|http://www.tutorialspoint.com/java/lang/string_split.htm"; 
String delimiters = "\\|(?=http)"; 

// analyzing the string 
String[] urls = str.split(delimiters); 

// prints the number of tokens 
System.out.println("Count of urls= " + urls.length); 

for(String url: urls) { 
    System.out.println(url); 
} 

它会分裂的|其次http。此示例的输出是:

Count of urls = 3 
http://www.google.com 
https://support.microsoft.com/en-us/kb/301982 
http://www.tutorialspoint.com/java/lang/string_split.htm 
0

你可以试试下面的代码:

// As your question in this string contains three https 
String httpStr = "http://...|http://..=http://...=http://...|http://...=http%25253A%25252F%25252F..."; 
// Split the string with 'http' that preceded by | 
String[] https = httpStr.split("(?<=\\|)http"); 
for (String http : https) { 
    System.out.println("http = http" + http); 
} 

而且它的结果:

http = http://...| 
http = http://..=http://...=http://...| 
http = http://...=http%25253A%25252F%25252F...