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

Expressão Regular


hlegius

Pergunta

Pessoal,

A expressão regular não é tipo uma linguagem separada? serve para PHP, ASP, MySQL ... ?

Pois veja isso:

Fiz uma usando ereg() e a mesma só que usando preg_match()

<?

$site = "http://www.site.com.br";

if(ereg("^(http://|www.)([[:alpha:]]+)\.([a-z_0-9]+)",$site)):

print "ok";

else:

print "Não ok";

endif;

print "<p>&nbsp;</p>";

if(preg_match("^(http://|www.)([[:alpha:]]+)\.[a-z_0-9]+)",$site)):

print "ok";

else:

print "Não está ok";

endif;

?>

O resultado foi:

ok

Warning: No ending delimiter '^' found in /server/public_html/estudos/er.php on line 10

Não está ok

por que o preg_match() não aceita o ^ em o $ ?

até... smile.gif

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Não... a preg precisa ter um delimitador porque ela tem algumas outras funcionalidades.

É assim mesmo. A princípio eu também achei estranho, mas depois li com mais atenção:

The syntax for patterns used in these functions closely resembles Perl. The expression should be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\). If the delimiter character has to be used in the expression itself, it needs to be escaped by backslash. Since PHP 4.0.4, you can also use Perl-style (), {}, [], and <> matching delimiters. See Pattern Syntax for detailed explanation.

A sintaxe do padrão usado nessas funções se assemelha de perto ao Perl. A expressão deve ser fechada dentro de delimitadores, uma barra (/), por exemplo. Qualquer caractere pode ser usado como delimitador contanto que não seja alfanumérico ou uma barra invertida (\). Se o caractere delimitador precisar ser usado na expressão em si, ele precisa ser escapado por uma barra invertida. Desde o PHP 4.0.4, você também pode usar os delimitadores no estilo do Perl (), {}, [] e <>. Veja Sintaxe do Padrão para uma explicação detalhada

cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

uh....

certo...

Fiz aqui e ficou assim:

<?

$site = "http://www.site.com.br";

if(ereg("^(http://|www.)([[:alpha:]]+)\.([a-z_0-9]+)",$site)):

print "ok";

else:

print "Não ok";

endif;

print "<p>&nbsp;</p>";

if(preg_match("(^(http://|www.)([[:alpha:]]+)\.[a-z_0-9]+)",$site)):

print "ok";

else:

print "Não está ok";

endif;

?>

Funciona igual a ereg() só que com a vantagem do preg ser mais rápido...

Para delimitador usei o ( e ) tentei usar a barra comun como sugerido mas dá erro...

até... smile.gif

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,4k
    • Posts
      652,2k
×
×
  • Criar Novo...