Dart:
Usando expressões regulares

Como fazer:

Dart utiliza a classe RegExp para expressões regulares. Aqui está um exemplo básico para combinar um padrão simples dentro de uma string:

void main() {
  var pattern = RegExp(r'\bDart\b');
  var text = 'Aprender programação Dart é empolgante.';

  if (pattern.hasMatch(text)) {
    print('Combinação encontrada!');
  } else {
    print('Nenhuma combinação encontrada.');
  }
  // Saída: Combinação encontrada!
}

Para extrair combinações de uma string, você pode usar o método allMatches. Esse método retorna um iterável de combinações:

void main() {
  var pattern = RegExp(r'\b\w+\b');
  var text = 'Dart é incrível!';

  var matches = pattern.allMatches(text);
  for (final match in matches) {
    print(match.group(0)); // Isso imprime as substrings correspondentes.
  }
  // Saída:
  // Dart
  // é
  // incrível
}

Substituir texto pode ser alcançado usando os métodos replaceFirst ou replaceAll:

void main() {
  var pattern = RegExp(r'\bDart\b');
  var text = 'Dart não é apenas um dardo.';
  
  // Substituir primeira ocorrência
  var modifiedText = text.replaceFirst(pattern, 'Flutter');
  print(modifiedText); 
  // Saída: Flutter não é apenas um dardo.

  // Substituir todas as ocorrências
  modifiedText = text.replaceAll(pattern, 'Flutter');
  print(modifiedText);
  // Saída: Flutter não é apenas um flutter.
}

Dividir uma string por um padrão regex é simples usando o método split:

void main() {
  var pattern = RegExp(r'\s+'); // Corresponde a qualquer caractere de espaço em branco
  var text = 'Dart é divertido';

  var parts = text.split(pattern);
  print(parts); 
  // Saída: [Dart, é, divertido]
}

Para análises ou validações complexas que não são suportadas diretamente pelo RegExp de Dart, você pode considerar bibliotecas de terceiros, mas a biblioteca padrão de Dart é frequentemente suficiente para tarefas comuns de regex, enfatizando sua utilidade e versatilidade no manuseio de expressões regulares.