從下面的URL中,我試圖提取2個字符串,例如String a = "region/country";
和String b = "123xyz";
我嘗試使用重載的方法IndexOf,但這也沒有幫助。任何指針?提取斜槓之間的字符串
String URL = "http://abcd.com/region/country/state/123xyzCONSTANTTEXT.html";
從下面的URL中,我試圖提取2個字符串,例如String a = "region/country";
和String b = "123xyz";
我嘗試使用重載的方法IndexOf,但這也沒有幫助。任何指針?提取斜槓之間的字符串
String URL = "http://abcd.com/region/country/state/123xyzCONSTANTTEXT.html";
可以使用模式類此。如果你只想匹配那個url之後的下兩個單詞(那不會改變),那麼你可以使用它。 \ w是[a-zA-Z0-9_]的簡寫。如果您對_確定,則使用\ w或者使用[a-zA-Z0-9]。
括號內的區域是匹配組,如果你想分離出地區和國家乾脆把括號圍繞每個\ W單獨和matcher.group(1)將包含區和matcher.group(2)將包含國家
String URL = "http://abcd.com/region/country/state/123xyzCONSTANTTEXT.html";`
Pattern pattern = Pattern.compile("http://abcd.com/(\\w+/\\w+)");
Matcher matcher = pattern.matcher(URL);
if (matcher.find()) {
System.out.println(matcher.group(1)); //prints region/country
} else {
System.out.println("Match not found");
}
謝謝,但我在第二行得到無效的轉義序列。我已經導入了導入java.util.regex.Pattern。你能否確認 – dazzle
對不起,有一對錯別字,只是測試它,它現在完全有效。 –
簡單而強大:)感謝:) –
你可以使用split()
方法。它以正則表達式字符串的形式接受一個參數,並輸出一個字符串數組,並將其分解爲正則表達式。
String[] stringArray = URL.split("/");
可能會輸出像數組:
String[] stringArray = {"http:","","abcd.com","region","country","state","123xyzCONSTANTTEXT.html"};
,然後在數組索引再次使用分裂:
String[] stringArray2 = stringArray[7].split("CONSTANTTEXT.html");
要檢索123xyz,將被存儲在stringArray2[0]
@jeff_kile提出了一個更快的解決方案。 「{\\ w +?CONSTANTTEXT \ .html}」適用於第二組嗎? – lightandlight
'String [] stringArray = URL.split(「/」);'有點混亂。在URL類中沒有靜態方法叫'split(「/」);'。相反,它應該是'url.split(「/」);' – pokkie
@pokkie在這種情況下,'URL'是一個變量。爲了便於閱讀,顯然應該命名爲「url」。 – lightandlight
例如
public class Example {
public static void main(String[] args) {
String[] string = "http://abcd.com/region/country/state/123xyzCONSTANTTEXT.html".split("/");
String string1 = "";
String string2 = "";
for(int i =0; i < string.length ; i++) {
if(i == 3) {
string1 += string[i] + "/";
}
if(i == 4) {
string1 += string[i];
}
if(i == 6) {
string2 = string[i].substring(0, Math.min(string[i].length(), 6));
}
}
System.out.println(string1);
System.out.println(string2);
}
}
輸出:
region/country
123xyz
感謝您分享您的意見。感謝 – dazzle
不客氣。 –
向我們展示你嘗試過什麼。並解釋URL的常量部分是什麼:例如,它是否總是以'http:// abcd.com /'開頭? –