[英]How can I pick out a number from a string in C#
我有這個字符串:
http://www.edrdg.org/jmdictdb/cgi-bin/edform.py?svc=jmdict&sid=&q=1007040&a=2
如何選擇“q=”和“&”之間的數字作為 integer?
所以在這種情況下,我想得到號碼:1007040
您實際上正在做的是解析 URI - 因此您可以使用 .Net 庫正確執行此操作,如下所示:
var str = "http://www.edrdg.org/jmdictdb/cgi-bin/edform.py?svc=jmdict&sid=&q=1007040&a=2";
var uri = new Uri(str);
var query = uri.Query;
var dict = System.Web.HttpUtility.ParseQueryString(query);
Console.WriteLine(dict["amp;q"]); // Outputs 1007040
如果您希望數字字符串為 integer,那么您需要解析它:
int number = int.Parse(dict["amp;q"]);
考慮使用正則表達式
String str = "http://www.edrdg.org/jmdictdb/cgi-bin/edform.py?svc=jmdict&sid=&q=1007040&a=2";
Match match = Regex.Match(str, @"q=\d+&");
if (match.Success)
{
string resultStr = match.Value.Replace("q=", String.Empty).Replace("&", String.Empty);
int.TryParse(resultStr, out int result); // result = 1007040
}
好像您想要一個 uri 的查詢參數,它是 html 編碼的。 你可以這樣做:
Uri uri = new Uri(HttpUtility.HtmlDecode("http://www.edrdg.org/jmdictdb/cgi-bin/edform.py?svc=jmdict&sid=&q=1007040&a=2"));
string q = HttpUtility.ParseQueryString(uri.Query).Get("q");
int qint = int.Parse(q);
使用組的正則表達式方法:
public int GetInt(string str)
{
var match = Regex.Match(str,@"q=(\d*)&");
return int.Parse(match.Groups[1].Value);
}
絕對沒有錯誤檢查!
查找查詢字符串 URL 中的數字
Uri myUri = new Uri("http://www.edrdg.org/jmdictdb/cgi-bin/edform.py?svc=jmdict&sid=&q=1007040&a=2");
string param = HttpUtility.ParseQueryString(myUri.Query).Get("q");
Console.WriteLine(param); // Outputs 1007040
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.