normalizeStandaloneDecimalLikeToken function

String normalizeStandaloneDecimalLikeToken(
  1. String line
)

Normalizes standalone decimal-like tokens made only of digit lookalikes.

This reuses the same decimal-shape validator as structured fields, but applies it to free-standing tokens in prose such as O.OO USD.

Implementation

String normalizeStandaloneDecimalLikeToken(String line) {
  if (line.isEmpty) {
    return line;
  }

  return line.replaceAllMapped(
    RegExp(
      r'(?<![A-Za-z0-9])([\[\]|!A-Za-z0-9]+\.[A-Za-z0-9]{2})(?![A-Za-z0-9])',
    ),
    (Match match) {
      final String token = match.group(regexGroupFirst) ?? '';
      if (!_looksDecimalStructuredNumericValue(token)) {
        return token;
      }
      return normalizeDateSeparators(_mapDigitLookalikesInValue(token));
    },
  );
}