Skip to main content
 首页 » 编程设计

C# 使用正则表达式获取多个匹配项

2024年04月18日40tuyile006

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 demo .

或者这个C# code:

var userVersionHTML = "2448hello2448welcome2448"; 
var chunks = userVersionHTML.Split(new[] {"2448"}, StringSplitOptions.RemoveEmptyEntries);  
var versionNumberStatus = chunks[0]; 
var usernameStatus = chunks[1];