hlegius Postado Dezembro 19, 2004 Denunciar Share Postado Dezembro 19, 2004 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> </p>";if(preg_match("^(http://|www.)([[:alpha:]]+)\.[a-z_0-9]+)",$site)): print "ok";else: print "Não está ok";endif;?> O resultado foi:okWarning: No ending delimiter '^' found in /server/public_html/estudos/er.php on line 10Não está ok por que o preg_match() não aceita o ^ em o $ ?até... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Dezembro 19, 2004 Denunciar Share Postado Dezembro 19, 2004 Não sei expressões regulares, sei que ela é separada MSN e dá pra usar junto com o php sim, veja um link de expressões regulares: http://guia-er.sourceforge.net/guia-er.html, talveis em breve vou começar a mecher a fundo com o assunto. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hlegius Postado Dezembro 19, 2004 Autor Denunciar Share Postado Dezembro 19, 2004 ok, é por aí que estudo...e o ^ indica que o que vem após deverá estar no começo... e o $ serve para o que vem antes dele seja o final...mas no preg não funciona...vlw mesmo assim!até... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Dezembro 19, 2004 Denunciar Share Postado Dezembro 19, 2004 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hlegius Postado Dezembro 19, 2004 Autor Denunciar Share Postado Dezembro 19, 2004 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> </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é... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Dezembro 19, 2004 Denunciar Share Postado Dezembro 19, 2004 No caso da barra acho que você tem que escapar ela porque você está usando ela dentro da expressão. Mas é sempre melhor usar coisas como & % e por aí vai... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hlegius Postado Dezembro 19, 2004 Autor Denunciar Share Postado Dezembro 19, 2004 vlw.. Error404muito obrigado...até... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
hlegius
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()
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é...
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.