Ir ao conteúdo

Regular Expression


Ir à solução Resolvido por Adenes,

Posts recomendados

Postado

Boa Noite,

 

Preciso capturar dados de uma variável usando uma regular expression. Os dados estão na forma (por exemplo Ip=8.8.8.8&probe=ip/tcp{dst=53}).

 

Para isso estou usando:

 

char *data;
data = getenv("QUERY_STRING");
 
char ipt[40];
char probe[40]; 
sscanf(data,"ip=%[0-9a-zA-Z-.]&probe=[0-9a-zA-Z-.{}/=]",ipt,probe);
 
O segundo dado tem a barra sempre, porém o compilador nao aceita essa regular expression, mais especificamente a /
Sao consigo capturar o que há depois do probe=
 
como fazer?
 
 
Já tentei usar
 
sscanf(data,"ip=%[0-9a-zA-Z-.]&probe=[...]",ipt,probe);
 
sem sucesso também.
Postado

Tu esqueceu o % no segundo catch strings'!'

"ip=%[0-9a-zA-Z-.]&probe=%[0-9a-zA-Z-.{}/=]"

;)

Acabei colando aqui a versao errada mesmo. Eu estou usando o %. ip=%[0-9a-zA-Z-.]&probe=%[0-9a-zA-Z-.{}/=]

Ele compila e tudo, apenas nao captura nada a nao ser letras comuns. Nao pega os caracteres especiais.

  • Curtir 1
Postado

Aqui capturou como esperado usando o seguinte string.

Não tenho mais como saber o que está errado.

"ip=%[0-9a-zA-Z.]&probe=%[0-9a-zA-Z.{}/=]"

;)

Postado

Aqui capturou como esperado usando o seguinte string.

Não tenho mais como saber o que está errado.

"ip=%[0-9a-zA-Z.]&probe=%[0-9a-zA-Z.{}/=]"

;)

Pois é, esse foi o primeiro que eu tentei e não deu certo. Como tu fez o teste? Meus dados vem de uma página web e o processo se dá no servidor. Por isso que deve ter essa diferença.

Postado

Capture vindo do stdin usando a função scanf. Digitei no prompt$

ip=192.186.0.1&probe=gets{a/z}=y666.

Na primeira strings peguei tudo entre o = e o &

Na segunda strings peguei tudo depois do probe=

  • Solução
Postado

Capture vindo do stdin usando a função scanf. Digitei no prompt$

ip=192.186.0.1&probe=gets{a/z}=y666.

Na primeira strings peguei tudo entre o = e o &

Na segunda strings peguei tudo depois do probe=

Consegui resolver. Como estou pegando do navegador eu precisava capturar o % (%%), para depois poder decodificar. Resolvida. Valeu pela ajuda mesmo assim.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!