Jump to content
AndersonWS

Expressão regular para encontrar um termo entre chaves ou colchetes ou parenteses [RESOLVIDO]

Recommended Posts

Olá a todos, preciso de uma ajuda com uma expressão regular. Quase deu certo porém  me falta achar todas as partes, creio que seja só um ajuste na minha expressão regular.

$string = CONTRATANTE: {{ Nome do Contratante }} , {{ Nacionalidade Contratante }} , {{ Estado Civil Contratante }} , 
{{ Profissão Contratante }} , Carteira de Identidade nº {{ Identidade Contratante }} , C.P.F. nº {{ CPF Contratante }} ,
residente e domiciliado na {{ Logradouro Contratante }} , nº {{ Numero Logradouro Contratante }} , bairro {{ Bairro Contratante }} , 
Cep {{ CEP Contratante }} , Cidade {{ Cidade Contratante }} , no Estado {{ UF Contratante }}";

$arr = $string;
$i=1;
preg_match_all("#\{{[\w\s']+\}}#i", $arr, $txt);
foreach($txt AS $key => $val){
	foreach($val AS $k => $v){
		echo $i.'- '.$v.'<br/>'; 
		$i++;
	}
}

O resultado esperado vem com alguns itens faltando:

1- {{ Nome do Contratante }}				{{ Nome do Contratante }}
2-	???						{{ Nacionalidade Contratante }}
3- {{ Estado Civil Contratante }}			{{ Estado Civil Contratante }}
4-	???						{{ Profissão Contratante }}
5- {{ Identidade Contratante }}				{{ Identidade Contratante }}
6- {{ CPF Contratante }}				{{ CPF Contratante }}
7-	???						{{ Logradouro Contratante }}
8- {{ Numero Logradouro Contratante }}			{{ Numero Logradouro Contratante }}
9- {{ Bairro Contratante }}				{{ Bairro Contratante }}
10- {{ CEP Contratante }}				{{ CEP Contratante }}
11- {{ Cidade Contratante }}				{{ Cidade Contratante }}
12-	???						{{ UF Contratante }}

 

Share this post


Link to post
Share on other sites

Descobri o problema:

Na verdade não era na expressão regular. 
Como vinha do banco de dados o problema ocorria pelos caracteres especiais.

Pra quem quiser, usei essa função e resolveu:

function remove_accentBD($str)
{
  $a = array('&aacute;', '&agrave;', '&atilde;', '&acirc;', '&eacute;', '&ecirc;', '&iacute;', '&oacute;', '&ocirc;', '&otilde;', '&uacute;', '&uuml;', '&ccedil;', '&Aacute;', '&Agrave;', '&Atilde;', '&Acirc;', '&Eacute;', '&Ecirc;', '&Iacute;', '&Oacute;', '&Ocirc;', '&Otilde;', '&Uacute;', '&Uuml;', '&Ccedil;');
  $b = array('a' , 'a' , 'a' , 'a' , 'e' , 'e' , 'i' , 'o', 'o' , 'o' , 'u' , 'u' , 'c' , 'A' , 'A' , 'A' , 'A' , 'E' , 'E' , 'I' , 'O' , 'O' , 'O' , 'U' , 'U' , 'C');
  return str_replace($a, $b, $str);
}

 

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 violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema.
       
      Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável.
       
      O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista.

      O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD.
       
      Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo:
      ALT+A  para agregar a lista
      ALT+S para salvar a lista de itens desejados.

      Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados.

      Grato,

      Cesar
       
       
       
    • By violin101
      Caros amigos, saudações.

      Estou com uma pequena dúvida se é possível ser realizado.

      Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso.

      Observação:
      Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo.
      <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = '&nbsp;&nbsp;Aberto&nbsp;&nbsp;'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div>
      Grato,

      Cesar.
    • By violin101
      Caros amigos, saudações.

      Por favor, peço desculpa em recorrer a ajuda dos amigos referente uma dúvida.

      Tenho um Sistema que estou escrevendo em PHP + Codeigniter e a minha dúvida em Codeigniter é:
      Obs.: as tabela são em MySql

      => como faço para IMPORTAR o dado de uma Tabela para outra, as tabela são:
      ___________________Tabela de Pedido     =========== para ==========>    Tabela de Entrada de Lançamentos
      itens: codigoProduto | quantidade | valorUnitario  === importar===> itens: codigoProduto | quantidade | valorUnitario
       
      Estou tentando de várias formas, mas não estou conseguindo.

      Por favor, alguém pode me dar uma ajuda, explicação ou orientação.

      Grato,
       
      Cesar
       
    • By violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida que não estou conseguindo resolver.

      Tenho 2 Tabelas, a 1ª.principal e a 2ª.secundária.

      Exemplo:
      Dados da 1ª Tabela - Peças e Equipamentos
      Dados da 2ª Tabela - Veículos.

      Seria isso:
      0010 - Pneu Aro 20
        [x] 001 - Corsa
        [_] 002 - Fusca
        [_] 003 - Palio
      Comentário:________________
       
      0100 - Óleo para Motor
         [x] 002 - Fusca
         [_] 003 - Palio
      Comentário:________________
       
      1030 - Lubrificante
         [_] 001 - Corsa
         [x] 003 - Palio
      Comentário:________________
       
      O meu problema está sendo quando preciso SALVAR/ATERAR o campo COMENTÁRIO, pois trata-se da 1ª.tabela.
       
      Gostaria salvar o COMENTÁRIO sem interferir nas seleção da 2ª. tabela.
       
      Grato,
       
      Cesar
       
       
       
       
       
    • By belann
      Olá!
       
      Estou usando o editor quill em uma página html, sem fazer a instalação com npm, mas usando as api´s via internet com http, no entanto não consigo fazer a tecla enter funcionar para mudança de linha, tentei essa configuração abaixo, mas não funcionou.
       
      modules: {       syntax: true,       toolbar: '#toolbar-container',       keyboard: {         bindings: {           enter: {             key: 13,             handler: function(range, context) {                       quill.formatLine(range.index, range.length, { 'align': '' });             }           }  
       
×

Important Information

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