我有一個URL,需要從中提取端口,用戶名和密碼並將它們放入數組中。它看起來像下面。C#正則表達式URL端口用戶名和密碼
http://myproject.ddns.net:8080/get.php?username=9zu7T54rt6&password=1Tbliu49iH&type=m3u_plus&output=ts
我可以使用沒有取代其他方法或子?
我有一個URL,需要從中提取端口,用戶名和密碼並將它們放入數組中。它看起來像下面。C#正則表達式URL端口用戶名和密碼
http://myproject.ddns.net:8080/get.php?username=9zu7T54rt6&password=1Tbliu49iH&type=m3u_plus&output=ts
我可以使用沒有取代其他方法或子?
一個在C#的方式
獲取查詢參數
var parsedQuery = HttpUtility.ParseQueryString("http://myproject.ddns.net:8080/get.php?username=9zu7T54rt6&password=1Tbliu49iH&type=m3u_plus&output=ts");
然後,下面將給用戶名
parsedQuery["username"]
對於密碼:
parsedQuery["password"]
對於端口,您可以使用URI
:
Uri uri = new Uri("http://myproject.ddns.net:8080/get.php?username=9zu7T54rt6&password=1Tbliu49iH&type=m3u_plus&output=ts");
通過
uri.Port
獲取端口創建任何你需要給俱樂部一個數組或使用。
看起來不錯,但我認爲你需要互聯網連接(我知道我沒有在我的文章中提到過),但我們需要能夠添加鏈接到列表,即使我們是離線的。我們輸入的鏈接是「100%」有效,但我真的很喜歡你的方法,並會記住我的下一個項目:) –
但爲什麼你需要互聯網連接呢?你可以解釋嗎 ? – Tushar
對不起,我認爲它也會檢查它是否可用 –
我不知道C#,但這裏有一個適用於Python的。這很簡單,所以你應該能夠轉換。
:(?P<port>[0-9]+).*username=(?P<username>[a-zA-Z0-9]+).*password=(?P<password>[a-zA-Z0-9]+)
的(θP <富>吧)語法,將放在一個變量匹配模式「酒吧」到一個名爲「富」,當你提取它們的變量命名捕獲組。
這裏是用純C#的正則表達式的另一種可能的解決方案:
var url = "http://myproject.ddns.net:8080/get.php?username=9zu7T54rt6&password=1Tbliu49iH&type=m3u_plus&output=ts";
var urlRegex = new Regex(@"(?<=(http(s)?://)?\w+(\.\w+)*:)\d+(?=/.*)?");
var usernameRegex = new Regex(@"(?<=(\?|&)username=).*?(?=&|$)", RegexOptions.IgnoreCase);
var passwordRegex = new Regex(@"(?<=(\?|&)password=).*?(?=&|$)", RegexOptions.IgnoreCase);
Console.WriteLine(urlRegex.Match(url));
Console.WriteLine(usernameRegex.Match(url));
Console.WriteLine(passwordRegex.Match(url));
如果有任何部件不改變,例如如果它總是相同的URL,你可以只更換這樣
string str = "http://myproject.ddns.net:8080/get.php?username=9zu7T54rt6&password=1Tbliu49iH&type=m3u_plus&output=ts"
str.Replace("http://myproject.ddns.net","");
這將離開你 「:8080/get.php用戶名= 9zu7T54rt6 &密碼= 1Tbliu49iH &類型= m3u_plus &輸出= TS」
沒有什麼能阻止你用另一節重複這個過程。
至於正則表達式,你可以使用Regex.Match https://msdn.microsoft.com/en-us/library/twcw2f1c(v=vs.110).aspx來獲得你想要的部分。
你可以使用「:\ d {4} /」來獲取端口 - 你必須去掉前導「:」和尾隨「/」;這「用戶名= \ w * \ &」獲取用戶名 - 你必須去掉領先的「用戶名=」和尾隨「&」雖然;和密碼,你可以使用「密碼= \ w * \ &」 - 你必須去掉領先的「密碼=」和尾隨「&」雖然。
如果你想用正則表達式來試驗這個網站https://regex101.com/是相當不錯的。
多數民衆贊成我以前做過它^^但看起來很髒我 –
你嘗試過什麼嗎? – Rahul
可能重複[什麼是一個很好的正則表達式來匹配一個URL?](https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url) – Adrian
如果您已經嘗試過某些功能,請將您的代碼發佈到您的問題中。如果您還沒有嘗試過任何東西,請嘗試一下,然後回到我們面前,留下您遇到的具體問題。 –