Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

oxyzero

[Resolvido] preg_match - Retirar espaços em toda a string, excepto entre aspas/quotes

Mensagens Recomendadas

oxyzero

Olá a todos,

Preciso de uma ajuda, porque não estou a entender como fazer o primeiro parâmetro da função preg_match.

Eu tenho a seguinte linha de código:

$lines = preg_replace('/\s+/', '', $lines);

Esta linha limpa todos os whitespaces na string. O que é o que eu preciso, mas, eu não quero eliminar espaços que estejam entre aspas ou seja:

String:

teste aaa . "Um teste bbb" !

Como a função está neste momento a seguinte string ficaria:

testeaaa."Umtestebbb"!

Como eu queria que a função trata-se da string:

testeaaa."Um teste bbb"!

O preg_match é capaz de fazer isto? Se sim, podem-me ajudar a entender como formar aquele código que se insere no primeiro parametro?

Editado por oxyzero
  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
oxyzero

Hmmn, encontrei esta aqui que acabou por funcionar.

Além disso, permite fazer escape às quotes dentro de quotes tipo: " \"teste\" "

Se alguém precisar:

$lines = preg_replace('/\s+(?=((\\[\\"]|[^\\"])*"(\\[\\"]|[^\\"])*")*(\\[\\"]|[^\\"])*$)/', '', $lines);

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

$lines = preg_replace('/\s+(?=((\\[\\"]|[^\\"])*"(\\[\\"]|[^\\"])*")*(\\[\\"]|[^\\"])*$)/', '', $lines);

Peguei nisso e melhorei um pouco.

"[^"\\]*(?:\\.[^"\\]*)*"


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.