public override List <WechatGroup> GetGroupsInOneFile(string filePath, FileOrder order) { var fileContent = File.ReadAllText(filePath).ReplaceNoNeedSymbols(); // </div><a class = 'subtitle4'.*?>(.*?)\\(\\d*\\) var tableMatches = Regex.Matches(fileContent, "<a class = 'subtitle4'.{0,100}<table(.{0,200}?)abbr=\"群账号\"(.*?)</table>"); var qqIndex = GetQQIndex(fileContent); var groupList = new List <WechatGroup>(); foreach (Match aMatch in tableMatches) { if (qqIndex > 0 && order == FileOrder.Last && fileContent.IndexOf(aMatch.Value) > qqIndex) { continue; } var memberMatches = Regex.Matches(aMatch.Value, @"<tr .*?>(.*?)</tr>"); var newGroup = new WechatGroup(); newGroup.Members = new List <WechatAccountInfo>(); foreach (Match aMembenMatch in memberMatches) { var aNewMember = new WechatAccountInfo(); var memberInfoMatch = Regex.Matches(aMembenMatch.Value, "<td>.*?</td>"); if (string.IsNullOrEmpty(newGroup.Account)) { newGroup.Account = Regex.Match(memberInfoMatch[1].Value, "<td>(.*) <br/></td>").Groups[1].Value.FilterHtmlSpecialSymbols(); } if (string.IsNullOrEmpty(newGroup.Name)) { newGroup.Name = Regex.Match(memberInfoMatch[2].Value, "<td>(.*) <br/></td>").Groups[1].Value.FilterHtmlSpecialSymbols(); } aNewMember.Account = Regex.Match(memberInfoMatch[3].Value, "<td>(.*) <br/></td>").Groups[1].Value.FilterHtmlSpecialSymbols(); aNewMember.Name = Regex.Match(memberInfoMatch[4].Value, "<td>(.*) <br/></td>").Groups[1].Value.FilterHtmlSpecialSymbols(); newGroup.Members.Add(aNewMember); } groupList.Add(newGroup); } return(groupList); }
public override List <WechatGroup> GetGroupsInOneFile(string filePath, FileOrder order) { var fileContent = File.ReadAllText(filePath).ReplaceNoNeedSymbols(); var tableMatches = Regex.Matches(fileContent, @"<table .{0,350}?成员(帐|账)号</td>.*?</table>((\s<div)|(<br>)|(\s</body>))"); var groupList = new List <WechatGroup>(); foreach (Match aMatch in tableMatches) { var newGroup = new WechatGroup(); newGroup.Members = new List <WechatAccountInfo>(); var memberMatches = Regex.Matches(aMatch.Value, @"<tr\S.*?>(.*?)</table></div></td></tr>"); foreach (Match aMembenMatch in memberMatches) { var aNewMember = new WechatAccountInfo(); newGroup.Account = Regex.Match(aMembenMatch.Value, @"</td><td>(.*?)</td><td .*?><div").Groups[1].Value; var memberInfoMatch = Regex.Matches(aMembenMatch.Value, @"<tr><td> .*?</td><td> (.*?)</td></tr>"); if (string.IsNullOrEmpty(newGroup.Name)) { newGroup.Name = memberInfoMatch[0].Groups[1].Value.FilterHtmlSpecialSymbols(); } aNewMember.Name = memberInfoMatch[1].Groups[1].Value.FilterHtmlSpecialSymbols(); aNewMember.Account = memberInfoMatch[2].Groups[1].Value.FilterHtmlSpecialSymbols(); aNewMember.Description = memberInfoMatch[3].Groups[1].Value.FilterHtmlSpecialSymbols(); aNewMember.Location = memberInfoMatch[4].Groups[1].Value.FilterHtmlSpecialSymbols(); // aNewMember.Account = memberInfoMatch[5].Groups[1].Value.FilterHtmlSpecialSymbols(); 头像 if (memberInfoMatch.Count > 6) { aNewMember.Inway = memberInfoMatch[6].Groups[1].Value.FilterHtmlSpecialSymbols(); } newGroup.Members.Add(aNewMember); } groupList.Add(newGroup); } return(groupList); }