Regular expressions e C++11

Já estou até vendo… Alguns de vocês vão reclamar que o padrão C++11 implementa regular expressions!

De fato, mas num outro sabor: ECMAScript. O mesmo usado no JavaScript.

A forma de usar é bem simples:

#include <iostream>
#include <string>
#include <regex>

std::regex re("(sub)(.*)");
std::string s("subject");
std::smatch sm;

if (std::reg_match(s, sm, re))
{
  std::cout << "matches: "
  for (int i = 0; i < sm.size(); i++)
    std::cout << "\"" << sm[i] << "\" ";
  std::cout << "\n";
}

Assim como na chamada de regexec() da libc, o primeiro item “bate” com a regex inteira. O segundo com o primeiro grupo e o terceiro com o segundo grupo e assim por diante…

É mai fácil do que em C, certo? Só que ECMAScript não é o padrão IEEE (POSIX.2 é!).

E eu AINDA detesto C++!

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s