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 igmacedo
      Preciso criar uma rota para cada usuário, mais de forma automatizada. é preciso que a url fique assim:
      site.com/compane/nome_da_empresa
       
      repare na parte em negrito, deve ser feito uma consulta no banco de dados para saber se aquele nome existe ou não, se existir, ele mostra a view1, se não existir ele mostra a view2.
       
      dessa forma eu poderia pegar o nome dos usuários que já existem no bd e passar na url na forma de string para mostra uma especie de pagina personalizada para cada um, a ideia do projeto é ser single-tenancy, então não haverá subdominio, apenas paginas, poderiam me dar um norte para construir a funçao?
      não achei nada a respeito.
    • By renzogr
      Olá Masters
       
      Estou precisando incluir uma string num campo de uma tabela mysql.
      É o seguinte:
      Tenho um campo contendo instruções de uma receita culinária e preciso colocar a string "-- " (sem aspas) no início de cada linha do campo das instruções.
      Já tentei o 
      UPDATE tabela SET variavel = concat("-- ", variavel); mas ele só altera a primeira linha...  Preciso encontrar as demais linhas dentro do campo e colocar a string na frente.
       
      Alguém tem uma ideia de como fazer ?
       
    • By Antena
      Olá pessoal, 
      Estou com um problema , onde o script não está possibilitando a inserção de novos dados desde o dia 02/09. O erro apresentado é este:
       
      02-Sep-2019 13:11:18 America/Fortaleza] PHP Notice: Uninitialized string offset: 17 in /home/xxx/xxx/site/config/func.php on line 30 A parte da função que apresenta este problema é este:
       
      function remove_extra_in_url($url) { $extra=array('https://','http://','www.',' '); $url=strtolower($url); $url=str_replace($extra,'',$url); $i=0; $site_name=''; $len=strlen($url); while($url[$i]!='/' && $url[$i]!='?' && $i<$len) { $site_name.=$url[$i]; $i++; } return $site_name; } Mais especificamente esta linha:
       
      while($url[$i]!='/' && $url[$i]!='?' && $i<$len)  
       
      Alguém poderia me ajudar?
    • By icaroperetti45
      Faça um programa em JAVA que deve ficar lendo uma letra por vez do teclado até que o operador digite a letra x. Após o operador digitar x o programa deve apresentar na tela o número de vezes que o operador digitou dois caracteres iguais em sequencia.
       
      Rapazeada, sou iniciante no java e gostaria de uma ajuda com o Exercício a seguir! Gostaria de saber como utilizo o != para string no while!
       
      package br.edu.ifcvideira.Lista3;
      import java.util.Scanner;
      public class Exercicio7 {
              public static void main(String[] args) {
                  Scanner in = new Scanner(System.in);
                  
                  String letra = null;
                  String letraCorreta = "x";
                  
                  while (letra.equals(letraCorreta)) {
                      
                  }
              }        
      }
       
    • By Santos_2015
      tenho array que está sendo preenchido assim:
      $dados = array([0] => "Nome",[1] => "SobreNome",[2] => "null"); queria que ficasse dessa forma:
      $dados = array([0] => "Nome",[1] => "SobreNome",[2] => null); pois estou extraindo os valores do array com array_values  pra colocar em um INSERT, os campos que podem ser null são do tipo date(BD mysql),
      então tenho que retirar as aspas quando o valor vier null , ou no próprio array, ou após o array_values, alguma sugestão?  
×

Important Information

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