Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Diego Rinno

Ajuda com preg_match()

Recommended Posts

Boa noite!

 

Tenho tentado estudar expressões regulares via preg_match mas não tenho me saído bem hehehe

 

Alguma boa alma poderia me explicar a seguinte regex?

 

/((?:f|ht)tp(?:s)?){1}:\/{2}(?:\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/

Eu sei que ela detecta a existência de http:// ou https:// e www a fim de detectar a existência de um URL na variável, mas não sei, de fato, o que significa e como funciona cada bloco desses. Alguém poderia me explicar? Meu objetivo é criar uma que detecte até mesmo URLs do tipo site.com ou site.br ou www.site.com ou sub.dominio.com, etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por FabianoSouza
      Preciso criar uma regra no IIS (para fazer o rewrite da URL) em que eu consiga passar uma string no formato JSON (colchetes, chaves, vírgula, dois pontos e aspas).
      Estou tentando usar isso mas não funciona
       
      <rule name="aplicarFiltro"> <match url="^aplicar-filtro/([A-Za-z0-9])" /> <action type="Rewrite" url="/app/backend/filtros/aplicar.asp?str={R:1}" /> </rule>  
      Creio que o problema esteja nessa parte da regra expressão regular:
      <match url="^aplicar-filtro/([A-Za-z0-9])" />  
    • Por mateus.andriollo
      Alguém conhece algum componente em jquery ou js para parte visual de um calculo matemático, não sei dizer o nome, mas basicamente seria um componente para parâmetro visual de fórmula matermátiva.
       
      Tenho um app que faz questionários e as fórmulas como base, preciso ter um compenente visual para eles mesmos criarem os calculos.
       
      Pior que não encontro nada para dar como exemplo, mas basicamente seria algo como a linha do excel usando parenteses e validando os calculos, preciso que os valores sejam carregados como autocomplete...
    • Por FabianoSouza
      Preciso criar uma expressão regular para retornar partes de uma string nesse padrão:
       
      https://meusite.com.br/dir1/dir2/pagina.aspx?id=123
       
      Preciso capturar separadamente:
      1) Os diretórios (dir1, dir2 e quantos tiverem)
      2) Nome da página com sua respectiva extensão
      3) O parâmetro com seu respectivo valor (id=123)
       
       
      Preciso disso para criar umas regras de URL Rewrite no IIS.
       
      Help pelo amor de God!
       
       
    • Por Maykel-ctba
      Boa tarde pessoal!
       
      Tenho a seguinte REGEX, . Ela serve para detectar se uma URL vem do Youtube ou do Vimeo, e possui os parâmetros necessários.
      (?:(?i)(?:https:|http:)?\/\/)?(?:(?i)(?:www\.youtube\.com\/(?:embed\/|watch\?v=)|youtu\.be\/|youtube\.googleapis\.com\/v\/)(?<YoutubeID>[a-z0-9-_]{11,12})|(?:vimeo\.com\/|player\.vimeo\.com\/video\/)(?<VimeoID>[0-9]+)) Ela é totalmente funcional no modelo PCRE (PHP). Testada aqui: https://regex101.com/r/PVdjg0/2
       
      Utilizo estes matches pra testar:
       
       
      Porém, preciso utiliza-la em um campo HTML dentro do atributo pattern. Por isso, preciso convertê-la para o padrão do JS. Mas aí começam uma série de problemas.
      Se eu utilizo como está, recebo o seguinte erro:
      ? The preceding token is not quantifiable
       
      Testes que realizei:
       
      - Se eu escapar o (?i) desta maneira: (/?i), só são validadas entradas do Vimeo.
      - Se eu deixar sem o ?, mesma coisa.
      - Se eu retirar a condição (?i), fica case sensitive, e não posso utilizar, pois videos do Youtube tem o parâmetro URL muitas vezes com maisculos, minusculos...
       
      Alguém pode me ajudar?
       
    • Por Guilherme Luiz
      Olá pessoal!
       
      Tenho uma situação onde preciso adicionar um FLAG se o usuário estiver incluindo um link em sua mensagem para que eu possa filtra-la ou não.
       
      Se estiver incluindo um link, preciso checar se esse link está autorizado. Se sim, adiciono um FLAG false, se não, true.
       
      Com links absolutos, isso é simples de ser feito e já tenho feito:
       
      <?php  $regex = "(((https?|ftp):\/\/)?(bit)?([a-z0-9+!*(),;?&=.-]+(:[a-z0-9+!*(),;?&=.-]+)?@)?([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))(:[0-9]{2,5})?(\/([a-z0-9+%-]\.?)+)*\/?(\?[a-z+&$_.-][a-z0-9;:@&%=+/.-]*)?(#[a-z_.-][a-z0-9+$%_.-]*)?)"; $linksAutorizados = ['bit.ly/123']; $mensagem = [ 'usuario' => 'teste', 'texto' => 'seja bem vindo ao meu site bit.ly/123' ]; $temLink = preg_match ($regex, $mensagem['texto'], $links); /** * $links retorna o seguinte array * 0: "bit.ly/123" * 3: "bit" * 7: "ly" * 8: "ly" * 13: "/123" * 14: "3" */ if ($temLink) { /* * Checo se link da mensagem é igual ao link da lista de linksAutorizados. * Se o link da mensagem for igual ao link da lista a mensagem não precisa ser filtrada * Se o link da mensagem for diferente ao link da lista, a mensagem precisa ser filtrada */ if ($links[0] == $linksAutorizados[0]) { $mensagem += [ 'filtrar' => false ]; } else { $mensagem += [ 'filtrar' => true ]; } } else { /* * Se não encontrar link na mensagem, ela não precisa ser filtrada */ $mensagem += [ 'filtrar' => false ]; } Obs: O acesso aos arrays foi em hardcoded para uma exemplificação mais clara.
       
      O meu problema é:
      E se eu quiser liberar links variáveis, ou seja, não importa o subdomínio ou demais parâmetros de querystring, checar somente o dominio
       
      Por exemplo
      *.meusite.com.br
      meusite.com.br/*
      subdominio.meusite.com.br/*
       
      Exemplo de array com links (que podem ser variaveis) autorizados para o usuario:
      $linksAutorizados = ['bit.ly/123', 'goo.gl/*', 'meusite.com.br/*' ];  
      Onde estão os asteriscos seriam os pontos que eu ignoro da verificação para filtro.
      Passei o dia fazendo alguns testes e pesquisando material no Stack mas não encontrei nada.
       
      Desde já muito obrigado por qualquer luz =)
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.