回答
像這樣:
String baseUrl;
Pattern p = Pattern.compile("^(([a-zA-Z]+://)?[a-zA-Z0-9.-]+\\.[a-zA-Z]+(:\d+)?/");
Matcher m = p.matcher(str);
if (m.matches())
baseUrl = m.group(1);
但是,你應該使用URI
class代替,就像這樣:
URI uri = new URI(str);
/^(https?\:\/\/[^\/]+).*/$1/
這將捕獲任何以http開頭和$ 1進行包含一切從開始到第一/後//
感謝您的快速性反應 – Sunil 2010-06-08 14:39:11
除了寫和扔掉的腳本,你應該總是從解析近三成複雜的語法(電子郵件地址,網址,html頁面等)使用正則表達式。
相信我,你將最終被咬傷。
感謝您的意見 – Sunil 2010-06-08 14:43:45
我敢肯定有一個Java類,將允許路徑的操作,但如果它必須是一個正則表達式,
https?://[^/]+
會工作。 (s?
包括也處理https:
)
感謝您的迴應sir – Sunil 2010-06-08 14:44:19
看起來像你的兩個具體的例子是最簡單的解決辦法是模式:
[^/]_//[^/]+
即:非斜線(0次或更多次),雙斜槓,非-slash(0或更多次)。如果你願意,你可以比這更嚴格,因爲現有的兩個答案是以不同的方式進行的 - 一個會拒絕例如另一個會拒絕帶有下劃線的網域(但接受不帶前導protocol://
的網址,因此在這方面甚至比我的廣泛)。各種答案(所有正確的關於你的不足規格;-)應該向你建議你的規格太模糊,應該收緊。
感謝您的快速回復sir – Sunil 2010-06-08 14:43:00
這是一個正則表達式,應該滿足給定的問題。
https?://[^/]*
我假設你問這部分是爲了獲得更多正則表達式的知識。但是,如果你想從一個URL拉主機,它可以說是更正確的使用Java的更強大的解析方法:
String urlStr = "https://www.abc.com/stuff";
URL url = new URL(urlStr);
String host = url.getHost();
String protocol = url.getProtocol();
URL baseUrl = new URL (protocol, host);
這是更好,因爲它應該,如果你輸入網址捕到更多的情況下,並不像上面所描述的那樣嚴格。
感謝您的快速回答sir – Sunil 2010-06-08 14:42:11
一個一個無襯正則表達式:
String baseUrl = url.substring(0, url.indexOf('/', url.indexOf("//")+2));
:) 感謝您的回答但我想使用正則表達式 – Sunil 2010-06-08 14:45:43
- 1. 非常簡單的正則表達式
- 2. 一個非常簡單的正則表達式的問題
- 3. 正則表達式:簡單的Java正則表達式問題
- 4. 簡單的正則表達式問題
- 5. 簡單的正則表達式問題
- 6. 簡單的正則表達式問題
- 7. 簡單的正則表達式問題
- 8. 簡單的正則表達式問題
- 9. 簡單的正則表達式問題!
- 10. NSPredicate,我有簡單NSPredicates和正則表達式的問題簡單的正則表達式的問題
- 11. 非常簡單的正則表達式的抽象引理
- 12. 非常簡單的網址重寫與正則表達式
- 13. 非常簡單的正則表達式不工作
- 14. 非常簡單的正則表達式編輯
- 15. Java非常簡單的正則表達式拼圖
- 16. Ruby正則表達式,只有一個捕獲(非常簡單!)
- 17. 非常奇怪的問題與Ruby和正則表達式
- 18. 正則表達式:簡單的搜索正則表達式?
- 19. 沒有正則表達式庫的簡單正則表達式?
- 20. javascript正則表達式 - 我的非常簡單的正則表達式有什麼不對?
- 21. Python的正則表達式〜簡單的問題
- 22. 簡單的JavaScript正則表達式的問題
- 23. 簡單的正則表達式的問題C#
- 24. 簡單的preg_replace +正則表達式的問題RegEx
- 25. PHP:簡單的正則表達式的問題
- 26. 一個簡單的SQL正則表達式的問題
- 27. 一個簡單的正則表達式的問題
- 28. 問題用簡單的正則表達式的JavaScript
- 29. 簡單的正則表達式的問題/多重匹配
- 30. 簡單的Perl分裂()和正則表達式的問題
這看起來就像功課 – Gyom 2010-06-08 14:33:28
@Gyom這看起來一點也不像功課 – 2010-06-08 14:34:48