between method
Text between start and end (first matches). Returns empty if not found.
Implementation
String between(Pattern start, Pattern end) {
final a =
(start is String)
? indexOf(start)
: (start as RegExp).firstMatch(this)?.start ?? -1;
if (a == -1) return '';
final startEnd =
(start is String)
? a + start.length
: ((start as RegExp).firstMatch(this)!.end);
final b =
(end is String)
? indexOf(end, startEnd)
: (end as RegExp).firstMatch(substring(startEnd))?.start;
if (b == null || b == -1) return '';
final endIdx = (end is String) ? b : startEnd + b;
return substring(startEnd, endIdx);
}