Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Preg_replace("/\s+/", " ", $


Skin_

Pergunta

Olá pessoal,

Sei que a função

preg_replace($s1, $s2, $string)
substitui todas as ocorrências de $s1 em $string por $s2. Assim, a função
preg_replace("/\s+/", " ", $string)
irá substituir quais caracteres por um espaço em branco? Aproveitando o ensejo, pergunto outras coisas: 1) qual a função dos colchetes [] no código:
$retorno[] = $string[0];
É a mesma coisa que fazer:
$retorno = $string[0];
OBS: $retorno é um array. 2) o que faz esta função:
preg_match("/^([dn]?[aeiou][s]?|em)$/i", $string)

Acho que meu problema é com "expressões regulares". Onde posso aprender mais sobre elas?

Valeu!

Skin_

Editado por Skin_
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

\s significa espaço em branco, + permite que existam "vários" espaços em branco, ou seja, o que isso dai faz é converter 'N' espaços em branco, em apenas 1...

preg_match("/^([dn]?[aeiou][s]?|em)$/i", $string)
Isso dai vai procurar palavras que comecem com 'd' ou 'n', logo após tenham 'a','e','i','o','u' e que podem ter ou não no final 's' OU ( -> | ) por 'em'... Estude ER -> http://guia-er.sourceforge.net/ Quanto a sua outra dúvida, pense um pouco baseado no código abaixo:
<?php
$palavra = array();
$palavra = "AAAA";
$palavra = "BBBB";
$palavra = "CCCC";
$palavra = "DDDD";
$palavra = "EEEE";
$palavra = "FFFF";
print_r($palavra);

echo "<BR><BR><BR><BR>";

$palavra = array();
$palavra[] = "AAAA";
$palavra[] = "BBBB";
$palavra[] = "CCCC";
$palavra[] = "DDDD";
$palavra[] = "EEEE";
$palavra[] = "FFFF";
print_r($palavra);
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado ESerra,

Sua explicação solucionou minhas dúvidas, com exceção de uma:

Entendi o significado de \s e + na expressão abaixo, mas até agora não entendi os significados de "/ e /"

preg_replace("/\s+/", " ", $string)
As mesmas barras invertidas aparecem na expressao regular da função
preg_match("/^([dn]?[aeiou][s]?|em)$/i", $string)

Seriam barras de escape? Mas para escapar o que?

Valeu!

Link para o comentário
Compartilhar em outros sites

  • 0
Se você tivesse clicado no link que eu te passei, em primeiro lugar descobriria que o que escapa alguma coisa é a barra -> \ e não a barra -> /...

Aquilo ali simplesmente demarca o começo e o fim da ER...

Pô ESerra,

eu cliquei no link que você mandou, inclusive já tinha dado uma olhada no livro sobre ER. Só fiz a pergunta no forum porque, em outros materiais que li, não ví necessidade de marcar o início e o fim das ER's com -> /....

Mesmo assim, obrigado pelo tempo gasto em me responder! Ajudou muito!

Skin_

Editado por Skin_
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...