簡體   English   中英

解析URL的字符串

[英]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。

http://msdn.microsoft.com/en-us/library/system.uri.aspx

您的問題用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM