C#如何提取字符串中age=后的数字并存入数组,处理末尾边界情况
实现方案
方案1:使用Split多字符串分隔重载
C#的Split本身支持多字符串作为分隔符,只需调用对应重载,同时过滤无效内容即可:
// 原始目标字符串示例 string rawStr = ", age=48, key=dkSlj, age=5\"}"; // 定义分隔符数组 string[] separators = { "age=", "," }; // 调用Split重载,自动移除空条目、trim前后空格 string[] splitArr = rawStr.Split(separators, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); // 筛选可解析为数字的条目,自动过滤末尾冗余符号 string[] ages = splitArr.Where(item => int.TryParse(item, out _)).ToArray();
方案2:正则匹配(更稳定,推荐)
直接匹配age=后的数字序列,无需额外处理边界和冗余内容:
using System.Text.RegularExpressions; string rawStr = ", age=48, key=dkSlj, age=5\"}"; // 正则规则:匹配age=后的连续数字,不捕获age=前缀 MatchCollection ageMatches = Regex.Matches(rawStr, @"(?<=age=)\d+"); // 转换为字符串数组 string[] ages = ageMatches.Cast<Match>().Select(m => m.Value).ToArray();
内容的提问来源于stack exchange,提问作者user2007843
相关产品推荐
相关产品推荐

