citations function

Set<String> citations(
  1. String text
)

The ids a text cites, ranges expanded; whole areas as C18.

Implementation

Set<String> citations(String text) {
  final out = <String>{};
  for (final m in _citation.allMatches(text)) {
    final t = m.group(1)!.replaceAll(RegExp(r'\s'), '');
    final parts = t.split(RegExp('[–]|(?<=\\d)-(?=[CDN])'));
    if (parts.length == 2) {
      out.addAll(_expand(parts[0], parts[1]));
    } else {
      out.add(t);
    }
  }
  return out;
}