[英]How do I extract a string out of a string in c#
我有以下字符串:
名字=約翰&姓= Doe的城市=倫敦和ConfirmationId = WXASL320330
我想從中提取確認信息。 我已經對它進行了拆分並傳入了&字符,但這會返回ConfirmationId = WXASL320330而我只是WXASL320330。 這樣做的最佳方式是什么?
該字符串實際上是PayPal返回的名為RawProcessorResult的屬性的一部分。
最簡單的方法是使用內置的HttpUtility.ParseQueryString()
方法:
string queryString = "FirstName=John&LastName=Doe&City=London&ConfirmationId=WXASL320330";
string confirmationID =
System.Web.HttpUtility.ParseQueryString(queryString)["ConfirmationId"];
// returns "WXASL320330"
另一個分裂'='
使用正則表達式:
新的正則表達式(@“ConfimationId =(\\ w +)”)
您可以使用正則表達式來實現目標。
或者,您可以將當前結果拆分為=,然后取第二個參數。
string temp = "ConfirmationId=WXASL320330";
string[] portions = temp.Split("=");
string answer = portions[1];
我會使用正則表達式。 例如:ConfirmationId =(\\ W {11})
我建議使用正則表達式。
String input =
"FirstName=John&LastName=Doe&City=London&ConfirmationId=WXASL320330";
String confimationId =
new Regex(@"ConfirmationId=(?<Id>[A-Z0-9]+)(&|$)").
Match(input).
Group("Id").
Value;
如果確認ID具有更多結構 - 例如,總共5個字母和6個數字 - 則應將此信息包含在表達式中。
@"ConfirmationId=(?<Id>[A-Z]{5}[0-9]{6})(&|$)"
如果確切的結構未知或可能發生變化,只需將所有內容都放到下一個&符號上即可。
@"ConfirmationId=(?<Id>[^&]+)"
input.Split('&').Select(x => x.Split('=')).Single(x => x[0].Equals("ConfirmationId"))[1]
這取決於。 如果這是你在asp.net應用程序中的網址的一部分,那么你只需要Request["Confirmationid"]
。 如果它來自其他東西,那么使用常規表達:
ConfirmationId = {[^&] *}
你有三種主要的方法。
var source = "FirstName=John&LastName=Doe&City=London&ConfirmationId=WXASL320330";
var parts = source.Split(new string[] { "&" }, StringSplitOptions.None);
再次拆分
var pattern = new Regex("[^=]+=(?<value>.*)");
var match = pattern.Match(parts[3]);
var confirmationId = match.Groups["value"].Value;
使用IndexOf的子字符串
var confirmationId = parts[3].Substring(parts[3].IndexOf("="));
正則表達式
var pattern = new Regex("[^=]+=(?<value>.*)"); var match = pattern.Match(parts[3]); var confirmationId = match.Groups["value"].Value;
string confirmationId = Regex.Match(input, @"(?<=ConfirmationId=)[^&]*").Value;
您可以對該結果進行拆分並獲取確認編號。
您可以執行以下操作:
myString.Split('&')[3].Split('=')[1];
但更好的方法可能是使用RegEx:
new RegEx("ConfirmationId=?*")
這是URL中的查詢字符串嗎? 你在使用網絡項目嗎? 如果是這樣,則有內置的方法來檢索值。 如果這是你正在做的事我告訴我,我會發布代碼。
我認為最好的方法是使用字符串索引。 請確保考慮到由於某種原因特定字符串不存在:
string val = "FirstName=John&LastName=Doe&City=London&ConfirmationId=WXASL320330";
string result = string.Empty;
if (val.LastIndexOf("ConfirmationId=")!= -1)
{
string val2 = val.Substring(val.LastIndexOf("ConfirmationId=") + 15);
result = (val2.IndexOf('&') != -1) ? val2.Substring(0, val2.IndexOf('&')) : val2;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.