[英]C# Using regex to get multiple matches
var userVersionHTML = "2448hello2448welcome2448";
Regex regex = new Regex("2448(.*?)2448");
var v = regex.Match(userVersionHTML);
versionNumberStatus.Text = v.Groups[1].ToString();
usernameStatus.Text = v.Groups[2].ToString();
目標是使versionNumberStatus.Text
顯示為“ hello”,使usernameStatus.Text
顯示為“ welcome”。
問題是usernameStatus.Text
沒有顯示任何內容。 有任何想法嗎?
您在這里只有一個捕獲組,處於"2448(.*?)2448"
模式,因此您無法訪問.Groups[2]
。
一個解決方案是使用2448
拆分或使用2448(.*?)2448(.*?)2448
模式。
參見regex演示 。
或此C#代碼:
var userVersionHTML = "2448hello2448welcome2448";
var chunks = userVersionHTML.Split(new[] {"2448"}, StringSplitOptions.RemoveEmptyEntries);
var versionNumberStatus = chunks[0];
var usernameStatus = chunks[1];
一種解決方案是將Matches()
與正則表達式一起使用,如下所示:
var userVersionHTML = "2448hello2448welcome2448";
Regex regex = new Regex("(2448)?(.*?)2448");
var v = regex.Matches(userVersionHTML);
versionNumberStatus.Text = v[0].Groups[2].ToString();
usernameStatus.Text = v[1].Groups[2].ToString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.