我想從字符串中只獲取數字id。結果:123456如何使用正則表達式從字符串獲取id
var text = "http://test/test.aspx?id=123456dfblablalab";
編輯:
對不起,另一個號碼可以在文本。我想在id後得到第一個數字。
var text = "http://test/test.aspx?id=123456dfbl4564dsf";
我想從字符串中只獲取數字id。結果:123456如何使用正則表達式從字符串獲取id
var text = "http://test/test.aspx?id=123456dfblablalab";
編輯:
對不起,另一個號碼可以在文本。我想在id後得到第一個數字。
var text = "http://test/test.aspx?id=123456dfbl4564dsf";
用途:
Regex.Match(text, @"id=(\d+)").Groups[1].Value;
有人會給你一個C#實現,但它沿
/[\?\&]id\=([0-9]+)/
線將匹配要麼&id=123456fkhkghkf
或?id=123456fjgjdfgj
(所以它會獲得價值無論是在URL)並將其作爲匹配捕獲該數字。
作爲參考,'''? &'和'='不需要轉義。至少在我見過的大多數正則表達式中 - 在任何情況下實際上都不需要在[]內部轉義,而'='不是特殊的字符。 – cHao 2012-02-23 14:16:52
極有可能,但是因爲我不知道C#,所以爲了避免這種情況,我逃脫了它們:)逃避不需要它的字符不會造成任何傷害,所以安全性比對不起 – Joe 2012-02-23 14:27:23
取決於正則表達式的風格。在某些口味中,除非特殊字符*被轉義,否則特殊字符並不特殊。 :P Vi在這方面往往特別惱人;至少vim有4種不同的「魔術」設置。 – cHao 2012-02-23 14:29:26
這取決於上下文 - 在這種情況下,它看起來像你解析URI和查詢字符串:
var text = "http://test/test.aspx?id=123456dfblablalab";
Uri tempUri = new Uri(text);
NameValueCollection query = HttpUtility.ParseQueryString(tempUri.Query);
int number = int.Parse(new string(query["id"].TakeWhile(char.IsNumber).ToArray()));
謝謝你的回答。 – sinanakyazici 2012-02-23 14:34:56
@sinanakyazici,不客氣。 – 2012-02-23 14:37:00