class Em { static regCate(String origin) { String str = origin; RegExp exp = RegExp('<[^>]*>([^<]*)]*>'); Iterable matches = exp.allMatches(origin); for (Match match in matches) { str = match.group(1)!; } return str; } static regTitle(String origin) { RegExp exp = RegExp('<[^>]*>([^<]*)]*>'); List res = []; origin.splitMapJoin(exp, onMatch: (Match match) { String matchStr = match[0]!; Map map = {'type': 'em', 'text': regCate(matchStr)}; res.add(map); return regCate(matchStr); }, onNonMatch: (String str) { if (str != '') { str = str .replaceAll('<', '<') .replaceAll('>', '>') .replaceAll('"', '"') .replaceAll(''', "'") .replaceAll('"', '"') .replaceAll(''', "'") .replaceAll(' ', " ") .replaceAll('&', "&"); Map map = {'type': 'text', 'text': str}; res.add(map); } return str; }); return res; } }