[英]string to parse out a URL
從“ JavaScript:好的部分”(第66頁)中獲得了此正則表達式字符串。 無法正常工作。 誰能看到這是怎么回事?
/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/
它應該像這樣拆分一個字符串:
https://stackoverflow.com/questions/ask
分為組成部分:方案,斜杠,主機,端口,路徑,查詢,哈希
順便說一句:此正則表達式必須是通用的...將用於不同的“方案”
也許這不是您的目標,但是為什么不使用System.Uri
類呢?
它具有所需的內容,並解析原始URI / URL。
您的問題用c#
標記,那么為什么不只使用System.Uri類呢?
例如
string s = "http://stackoverflow.com/questions/ask";
Uri uri = new System.Uri(s);
string scheme = uri.Scheme;
string host = uri.DnsSafeHost;
// etc
如果使用Javascript,請嘗試
result = subject.match(/\b(https?|ftp):\/\/([\-A-Z0-9.]+)(\/[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?(\?[A-Z0-9+&@#\/%=~_|!:,.;]*)?/ig);
我真的不知道,正則表達式所有部分的含義是什么,但是最后一個#字符應該用反斜杠轉義。
/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:\#(.*))?$/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.