Jump to content
Alvaro Pacífico Serpa

Extrair parte de uma string

Recommended Posts

Olá pessoal, tenho uma string que contém algo do tipo:

video = ('meuvideo.mp4')

titulo = ('meutitulo')

tempo = (tempo')

 

Preciso pegar o nome do titulo, ou seja, pegar o que estiver entre titulo = (' e ') no caso o resultado deveria ser meutitulo, o titulo não tem a mesma quantidade de caracteres sempre, alguma idéia de como posso fazer?

Share this post


Link to post
Share on other sites
  1. A linguagem que estás a usar é PHP?
  2. Estás a usar algum sistema de templates?
  3. Porquê os parentesis em torno dos valores das variáveis?

Share this post


Link to post
Share on other sites
5 minutos atrás, wootzor disse:
  1. A linguagem que estás a usar é PHP?
  2. Estás a usar algum sistema de templates?
  3. Porquê os parentesis em torno dos valores das variáveis?

 sim é PHP.

não possui templates.

os parentes estão salvo na string.

$string = "video = ('meuvideo.mp4')titulo = ('meutitulo')tempo = (tempo')";

 

Share this post


Link to post
Share on other sites

Porquê colocar todas as informações numa única string?

Isso irá dificultar bastante a manipulação de dados que pretendas fazer a seguir.

Share this post


Link to post
Share on other sites

Utilizando expressões regulares para extrair os dados delimitados pelos parêntesis:

$string = "video = ('meuvideo.mp4')titulo = ('meutitulo')tempo = ('tempo')";
preg_match_all('/\((.*?)\)/', $string, $matches);
list($video, $titulo, $tempo) = $matches[1];

As variáveis $video, $titulo e $tempo irão conter os dados que pretendes.

Share this post


Link to post
Share on other sites
14 minutos atrás, wootzor disse:

Utilizando expressões regulares para extrair os dados delimitados pelos parêntesis:


$string = "video = ('meuvideo.mp4')titulo = ('meutitulo')tempo = ('tempo')";
preg_match_all('/\((.*?)\)/', $string, $matches);
list($video, $titulo, $tempo) = $matches[1];

As variáveis $video, $titulo e $tempo irão conter os dados que pretendes.

Valeu já me ajudou, mas poderia me explicar melhor essa parte ?

'/\((.*?)\)/'

Share this post


Link to post
Share on other sites

O objectivo é obter os dados que estão dentro dos parêntesis.

A forma mais fácil é colocar a expressão num site como o RegexPal e verificar o significado de cada componente (basta passar por cima de cada elemento identificado com uma cor diferente para obter uma explicação.

 

d7e268G.png

 

Share this post


Link to post
Share on other sites

Considerando que a string sempre tenha o mesmo digamos "layout" segue um exemplo  meio POG sem usar REGEX:

 


$string = "video = ('meuvideo.mp4')titulo = ('meutitulo')tempo = ('tempo')";
//parte que quero : meutitulo
$x = explode("'", $string);
/*
Resultado do var_dump

array (size=7)
  0 => string 'video = (' (length=9)
  1 => string 'meuvideo.mp4' (length=12)
  2 => string ')titulo = (' (length=11)
  3 => string 'meutitulo' (length=9)
  4 => string ')tempo = (' (length=10)
  5 => string 'tempo' (length=5)
  6 => string ')' (length=1)

*/
$titulo = $x[3];

//O que te interessa
echo $titulo;

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Jefferson andre
      Ola,
      qual comando eu utilizo para pegar o que esta entre <a>teste</a> ?
      tendo como valor retornado: teste
       
      O uso seria para ler o conteudo de um xml ok
       
    • By luciano
      Boa noite pessoal alguém poderia me ajudar por favor,
      gostaria de pagar o valor da função random e colocar na imagem.
      -----função-----
      <p id="demo"></p>
      <script>
      document.getElementById("demo").innerHTML =
      Math.floor((Math.random() * 22) + 1);        
      </script>
      ----------
       <img src="imagens/('#demo').jpg" alt="Card">
       
      Eu ja tentei:
      ('#demo')
      '#demo'
      "#demo"
      Nada funciona.
       
      Por favor me dem uma luz, não manjo de java
      Obrigado
    • By leodamian
      Bom Dia !
       
        Estou iniciando no sql e preciso de um help na seguinte questão:
       
      Quero extrair o primeiro e segundo nome de um campo no oracle.
      EX: 
      Nome_Completo 
      LEONARDO FRANCISCO FLORIO DAMIAN
      JULIANO FRANCISCO FLORIO
      MARIA ELOISA DA SILVA SAURO
       
      RESULTADO
      LEONARDO FRANCISCO
      JULIANO FRANCISCO
      MARIA ELOISA
       
       
       
    • By viniciusfroner
      Boa noite, estou com um grande problema, formatei o meu notebook pela ferramenta de formatação do windows, quando estava tudo instalado reparei que alguns caracteres não eram mais reconhecidos, pesquisei pela internet sem sucesso, abri um ticket junto a microsoft e eles fizeram o reparo remoto, e mesmo assim não resolveu nada.
      O problema vai desde reconhecimento de caracteres em interface do windows ou programas, até na leitura de alguns textos como arquivos .srt e outros.
       
      Em anexo 2 imagens de exemplo do que acontece.
       
      Fico grato por qualquer ajuda.


×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.