splitText function

List<String> splitText(
  1. String pattern,
  2. List<String> formattedText
)

split text into a list of strings when having a pattern

Implementation

List<String> splitText(String pattern, List<String> formattedText) {
  final regex = RegExp(pattern);
  final List<String> splitedText = [];
  for (final String text in formattedText) {
    if (text.contains(regex)) {
      final matches = regex.allMatches(text);
      int start = 0;
      for (final match in matches) {
        if (start != match.start) {
          splitedText.add(text.substring(start, match.start));
        }
        splitedText.add(text.substring(match.start, match.end));
        start = match.end;
      }
      if (start != text.length) {
        splitedText.add(text.substring(start, text.length));
      }
    } else {
      splitedText.add(text);
    }
  }
  return splitedText;
}