Jump to content

Search the Community

Showing results for tags 'regex'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 20 results

  1. 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?
  2. 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 =)
  3. Então, cá estou eu tentando fazer umas expressões regulares para validação de links para mídias sociais e me esbarrei em alguns problemas a averiguação da string: A ideia é ter uma expressão para cada mídia social presente no atual momento, só aceitando uma url válida para aquela mídia. Estou com um problema em passar condicionais que quando a string entrar num determinado formato ela deve seguir exatamente o modelo válido para aquela situação. Separei cada condicional em uma linha para melhor entendimento: <?php $urlA = "https://www.facebook.com/profile.php"; // ** ERA PARA SER INVÁLIDO $urlB = "https://www.facebook.com/profile.php?id="; // ERA PARA SER INVÁLIDO $urlC = "https://www.facebook.com/"; // ** ERA PARA SER INVÁLIDO $urlD = "https://www.facebook.com/Fulano"; // Válido, está OK $urlE = "https://www.facebook.com/profile.php?id=999999999999999"; // Válido, está OK $urlF = "https://www.facebook.com"; // ** ERA PARA SER INVÁLIDO $urlG = "https://www.faceboo"; // ** ERA PARA SER INVÁLIDO if (preg_match( '/^' . '(https[\:][\/][\/]www[\.]facebook[\.]com)' // Valida o endereço oficial da mídia . '?([\/])' // Caso contenha ou não uma "/" no final da url . '?([a-zA-Z À-ú 0-9]+)' // Valida se o link do perfil segue um modelo amigável (expl: /fulano) . '|(?:profile[\.]php[\?]id[\=]([0-9]{15}))' // Nessa condicional não estou acertando . '?(.*)' // Essa também não . '$/', $urlA)) { echo 'válido'; } else { echo 'inválido'; } Como podem notar são as duas últimas condicionais que estou com problemas, que são necessárias a correta averiguação das entradas na string, mas seu as adicionar assim como está no exemplo acima tudo desanda fazendo com que não der certo, uma vez removidas as urls que estão inválidas não são aceitas fazendo com que der certo, mas no entanto outras que são válidas passam a não ser aceitas. Onde estou errando? Ao meu ver escrevi a expressão corretamente, mas na prática está errada. Obs.: Por enquanto só escrevi essa para facebook farei para as demais depois que resolver esse empasse.
  4. Olá, Gostaria de saber como selecionar os trechos em VERDE do texto abaixo, utilizando REGEX. Os trechos em AMARELO são os que se repetem, mas existe um "pedaço" no meio dessa string que apresenta variações. Qual seria o melhor o melhor método para retirar apenas as frases em VERDE? Obrigado!
  5. altyouth

    Expressões Regulares

    Tenho um código que le um arquivo csv e tenho expressões regulares pra encontrar determinados trechos. Pois bem, o código capta a maioria, mas tem alguns que nao são capturados msm seguindo a mesma regra das outras. O codigo esta em Scala formato do arquivo csv: Relatório de Controle de Ponto (por período);;;;;;;;;;;;;;;;;;;;;;;;;;; ;Empregador:;;;;CASTAWARE SOLUTIONS INC.;;;;;;;;;;;;CNPJ:;;;;;;1234567890;;;; ;Endereço:;;;;CastaStreet, 1234 - Hawai;;;;;;;;;;;;Unidade:;;;;;;;;;; ;Período:;;;;;01/09/2019;;;a;;14/09/2019;;;;;;Emitido em:;;;;;;14/setembro/2019;;;; ;Matrícula:;;;;1;;;;;;;;;;;;Admissão:;;;;;;01/junho/2016;;;; ;Escala atual:;;;;08:00 Livres Almoço Flex Seg---- / Sáb-Dom Repouso;;;;;;;;;;;;Demissão:;;;;;;;;;; ;Cargo:;;;;;;;;;;;;Função:;;;;;;;;;;;;;; ;Empregado:;;;;Roberto Gomes Soares;;;;;;;;;;;;;;;;;;;;;; Dia;;;"Jornada realizada ENTR. SAIDA ENTR. SAIDA";;;;;;; Turno;;;Jornada Diurna/Not.;;"Extra Diurno/Not.";;;;;;Devido;Abono;;Desab;;; Justificativa 01/09 - dom;;;;;;;;;;(R) ;;;;;;;;;;;;;;;;; 02/09 - seg;;;10:25 12:34 13:35 18:28;;;;;;;8:00h Livre (intervalo 12:00-13:00 [flex]);;;07:02;00:00;00:00;;;00:00;;;00:58;;;;;; 03/09 - ter;;;09:18 12:04 13:23 19:33;;;;;;;8:00h Livre (intervalo 12:00-13:00 [flex]);;;08:00;00:00;00:56;;;00:00;;;00:00;;;;;; 04/09 - qua;;;09:37 11:16 11:56 18:51;;;;;;;8:00h Livre (intervalo 12:00-13:00 [flex]);;;08:34;00:00;00:00;;;00:00;;;00:00;;;;;; 05/09 - qui;;;09:47 12:18 13:15 18:16;;;;;;;8:00h Livre (intervalo 12:00-13:00 [flex]);;;07:32;00:00;00:00;;;00:00;;;00:00;;;;;; 06/09 - ---;;;08:54 11:13 11:58 16:12;;;;;;;8:00h Livre (intervalo 12:00-13:00 [flex]);;;06:33;00:00;00:00;;;00:00;;;01:27;;;;;; 07/09 - sáb;;;;;;;;;;(R) ;;;;;;;;;;;;;;;;; 08/09 - dom;;;;;;;;;;(R) ;;;;;;;;;;;;;;;;; 09/09 - seg;;;09:22 11:40 12:44 19:07;;;;;;;8:00h Livre (intervalo 12:00-13:00 [flex]);;;08:00;00:00;00:41;;;00:00;;;00:00;;;;;; 10/09 - ter;;;;;;;;;;(F) 8:00h Livre (intervalo 12:00-13:00 [flex]);;;00:00;00:00;00:00;;;00:00;;;08:00;;;;;; 11/09 - qua;;;;;;;;;;(F) 8:00h Livre (intervalo 12:00-13:00 [flex]);;;00:00;00:00;00:00;;;00:00;;;08:00;;;;;; 12/09 - qui;;;;;;;;;;(F) 8:00h Livre (intervalo 12:00-13:00 [flex]);;;00:00;00:00;00:00;;;00:00;;;08:00;;;;;; 13/09 - ---;;;10:58 11:35 12:32 18:45;;;;;;;8:00h Livre (intervalo 12:00-13:00 [flex]);;;06:50;00:00;00:00;;;00:00;;;01:10;;;;;; 14/09 - sáb;;;;;;;;;;(R) ;;;;;;;;;;;;;;;;; ;Jornada + Abono;;;;;;;Jornada total;;;;52:31 (52,52);;;;00:00 (0,0);;;;;;;;;Jornada noturna;; ;52:31 (52,52);;;;;;;Extra total;;;;01:37 (1,62);;;;;;;;;;;;;;; ;Trabalhado (Jor.+Ext.);;;;;;;Atraso efetivo;;;;00:00 (0,0);;;;00:00 (0,0);;;;;;;;;Antecipação efetiva;; ;54:07 (54,13);;;;;;;Devido;;;;27:34 (27,58);;;;00:00 (0,0);;;;;;;;;Abonado;; ;Faltas;(horas);;;;;;Devido (s/faltas);;;;03:34 (3,58);;;;00:00 (0,0);;;;;;;;;Abonado (s/faltas);; ;3;24:00 (24,0);;;;;;Extra efetivo;;;;01:37 (1,62);;;;00:00 (0,0);;;;;;;;;Desabonado;; ;Dias;Feriados trab.;;;;;;Devido efetivo;;;;27:34 (27,58);;;;03:35:00;;;;;;;;;Devido efet(s/faltas;; ;14;0;;;;;;Dias escalados;;;;10;;;;-25:58 (-25,97);;;;;;;;;Saldo de Horas;; ;;;;;;;;BdH Acumulado;;;;-328:10 (-328,17);;;;80:00 (80,0);;;;;;;;;Horas programadas;; Controle de Extra;;;;;;;;;;;;;;;;;;;;;;;;;;; Jornada;;;;;;;Jornada de trabalho;;;;;;;;;;;;;;;;;;;52:30 (52,52); Assinatura Gestor/Supervisor;;;;;;;;;;;;;;;;;;;Assinatura;;;;;;;; No codigo eu pego as infos com nome do empregador, e os dias trabalhados alem do total de horas. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; import scala.util.matching.Regex import scala.io.Source import com.sun.xml.internal.ws.util.StringUtils object teste { def main(args: Array[String]): Unit = { val patternEmp = "\\;Empregado:\\;{4}([A-Za-z]*) ([A-Za-z]*) ([A-Za-z]*)\\;*".r; val patternWkDay = "([0-9]{2}/[0-9]{2}) - ([a-z]{3})\\;{3}([0-9: ]*).*".r; val patternWkJourney = "\\;Jornada \\+ Abono\\;{7}Jornada total\\;{4}([0-9]{2}:[0-9]{2}).*".r val patternFlagTotJourney = "\\;(Trabalhado \\(Jor.+Ext.\\))\\;{7}Atraso efetivo\\;{4}[0-9: (,)]*\\;{4}[0-9: (,)]*\\;{9}Antecipação efetiva\\;\\;".r val patternTotJourney = "\\;([0-9: (,)]*)\\;{7}Devido\\;{4}[0-9: (,)]*\\;{4}[0-9: (,)]*.*".r val regexs = Seq[scala.util.matching.Regex](patternEmp,patternWkDay,patternWkJourney,patternFlagTotJourney,patternTotJourney) val fileName = "RelExtraPorPeriodo.csv"; for(line <- Source.fromFile(fileName).getLines){ traduzLinha(line, regexs); } } def traduzLinha(line : String, regexs:Seq[scala.util.matching.Regex]): Unit = { regexs.foreach{ m => m.findAllIn(line).matchData foreach { n => if(m.equals(regexs(0))){ println("Empregado: " + n.group(1) + " " + n.group(2)+ " " + n.group(3)) } if(m.equals(regexs(1))){ println(n.group(1)+ "-" + n.group(2) + ": " + n.group(3)) } if(m.equals(regexs(2))){ println("Jornada total: "+ n.group(1) + "\n") } if(m.equals(regexs(3))){ println(n.group(1)+ ":") } if(m.equals(regexs(4))){ println(n.group(1)+"\n") } } } } } Saida do codigo: Empregado: Roberto Gomes Soares 01/09-dom: 02/09-seg: 10:25 12:34 13:35 18:28 03/09-ter: 09:18 12:04 13:23 19:33 04/09-qua: 09:37 11:16 11:56 18:51 05/09-qui: 09:47 12:18 13:15 18:16 06/09----: 08:54 11:13 11:58 16:12 08/09-dom: 09/09-seg: 09:22 11:40 12:44 19:07 10/09-ter: 11/09-qua: 12/09-qui: 13/09----: 10:58 11:35 12:32 18:45 Jornada total: 52:31 Trabalhado (Jor.+Ext.): 54:07 (54,13) 01/09-dom: 02/09-seg: 03/09-ter: 09:11 14:53 04/09-qua: 11:48 17:54 18:25 20:03 05/09-qui: 10:54 16:34 16:57 18:36 06/09----: 19:12 08/09-dom: 09/09-seg: 10/09-ter: 09:25 17:42 17:53 19:02 11/09-qua: 11:25 11:55 12:54 18:28 18:57 19:26 12/09-qui: 13:06 15:19 15:42 13/09----: 09:26 11:36 12:33 19:47 Jornada total: 35:52 Trabalhado (Jor.+Ext.): 45:39 (45,65) Empregado: Gabriel Nunes Santos 01/09-dom: 02/09-seg: 10:00 19:04 03/09-ter: 10:18 19:23 04/09-qua: 18:56 05/09-qui: 10:03 12:03 06/09----: 09:44 08/09-dom: 09/09-seg: 09:32 18:48 10/09-ter: 11:16 11/09-qua: 09:14 12/09-qui: 18:27 13/09----: Jornada total: 26:00 Trabalhado (Jor.+Ext.): 29:25 (29,42) Empregado: Paulo Bandeira J 01/09-dom: 02/09-seg: 03/09-ter: 04/09-qua: 05/09-qui: 06/09----: 08/09-dom: 09/09-seg: 10/09-ter: 11/09-qua: 12/09-qui: 13/09----: Jornada total: 00:00 Trabalhado (Jor.+Ext.): 00:00 (0,0) 01/09-dom: 02/09-seg: 11:40 17:19 17:28 18:45 03/09-ter: 11:24 19:02 04/09-qua: 11:20 13:05 13:53 19:03 05/09-qui: 12:34 14:22 14:53 20:46 06/09----: 11:13 12:51 13:59 16:59 17:09 18:41 08/09-dom: 09/09-seg: 11:16 18:48 10/09-ter: 11/09-qua: 10:32 13:42 14:34 18:16 12/09-qui: 10:52 13:58 15:24 18:44 13/09----: 11:37 20:18 Jornada total: 64:10 Trabalhado (Jor.+Ext.): 64:51 (64,85) Empregado: Carlos Alex de 01/09-dom: 02/09-seg: 11:01 12:34 13:35 19:50 03/09-ter: 12:01 12:06 15:45 19:37 04/09-qua: 11:32 13:10 13:46 05/09-qui: 10:55 12:16 13:15 18:27 06/09----: 11:43 19:34 08/09-dom: 09/09-seg: 10:43 11:45 12:44 19:07 10/09-ter: 13:06 14:09 20:36 11/09-qua: 12:57 18:28 18:57 21:04 12/09-qui: 10:02 13:58 15:24 18:27 13/09----: 09:49 11:38 12:32 19:12 Jornada total: 56:40 Trabalhado (Jor.+Ext.): 56:40 (56,67) 01/09-dom: 02/09-seg: 10:14 18:13 03/09-ter: 13:13 17:05 04/09-qua: 11:16 16:01 16:13 18:09 05/09-qui: 13:32 17:29 06/09----: 10:44 12:27 12:42 16:58 08/09-dom: 09/09-seg: 09:45 12:28 12:34 17:52 10/09-ter: 13:06 19:34 11/09-qua: 12:11 18:40 12/09-qui: 13:03 14:32 14:37 18:23 13/09----: Jornada total: 50:00 Trabalhado (Jor.+Ext.): 54:40 (54,68) Empregado: Carol Maria Rondelli 01/09-dom: 02/09-seg: 10:03 13:02 13:14 19:15 03/09-ter: 15:45 19:15 04/09-qua: 10:51 18:04 05/09-qui: 12:57 16:58 17:04 19:15 06/09----: 12:47 18:54 08/09-dom: 09/09-seg: 10:54 19:31 10/09-ter: 16:08 19:01 11/09-qua: 09:58 13:39 14:51 19:20 12/09-qui: 12:40 19:16 13/09----: 11:53 18:15 Jornada total: 55:04 Trabalhado (Jor.+Ext.): 64:40 (64,67) Empregado: Diego Rodrigues Abrantes 01/09-dom: 02/09-seg: 11:15 17:26 03/09-ter: 08:55 16:59 04/09-qua: 12:39 17:18 05/09-qui: 10:59 17:20 06/09----: 14:11 19:43 08/09-dom: 09/09-seg: 11:45 17:37 10/09-ter: 12:56 19:20 11/09-qua: 11:00 14:49 12/09-qui: 11:22 18:13 13/09----: 10:46 18:50 Jornada total: 00:00 Trabalhado (Jor.+Ext.): 61:46 (61,78) Percebe-se que tem algumas horas sem nome do funcionario. Alguem sabe oq pode estar ocasionando essa anomalia
  6. fernandolukkas

    Dúvida sobre uso de expressão regular

    Essa é uma questão de um trabalho da facul, não estou conseguindo resolver. Alguém que possa me ajudar ? Laudilene, é professora de filosofia e amiga de Gilberto, professor de física. Ambos dão uma "colher de chá" para seus alunos. No caso de Laudilene, ela dá até meio ponto para que seus alunos atinjam a média 8 para serem aprovados. Depois de calcular as médias das provas dos alunos, Laudi, muito cansada, lançou todas as médias em um arquivo texto: 10 - Bruce, 9.5 - Miranda, 7.9 - Bob, 10 - Zimbabue, 7.5 - Bety Qual é a expressão regular que pode ser utilizada para extrair o nome dos alunos que terão sua nota arredondada para 8.0 ?
  7. william010101

    Dúvida uso de regex

    Escreva uma regex que aceite um conjunto qualquer de 0, e 1 que tenha ao menos um 1.
  8. Julio Cavallari

    Ajuda com regex

    Preciso transformar uma string como essa: | A# | B/D# | C11 | D | E | F | G |; Nisso : | &A#& | &B&/&D#& | &C&11 | &D& | &E& | &F& | &G& |; O problema é que eu não entendo nada de expressão regular e não estou enxergando outra saída. Tentei usar str_replace(), porém não consigo fazer a função funcionar como quero. No exemplo que dei acima ela me retorna: | &A&# | &B&/&D&# | &C&11 | &D& | &E& | &F& | &G& |, porém preciso que os "#" estejam dentro dos "&". Vou explicar as regras que preciso seguir: Regra 1 - Somente de A - G e o simbolo "#"; Regra 2 - Tratar uma letra no range A - G seguida de "#", ex: "A#", como um somente um match; Regra 3 - Adicionar o simbolo "&" antes e depois de cada match, EX: Recebeu | G | G# | G11 | G/B | deve transformar em | &G& | &G#& | &G&11 | &G&/&B& |
  9. diegohamaz1

    Regex entre parenteses com delimitador

    Pessoal tenho uma seguinte expressao MAIOR(5.26;7;MENOR(3.00;6;MAIOR(7;8))) Eu gostaria de um regex um função que me retornasse o que contem o parenteses com delimitador por exemplo passando "MAIOR" como expressao o regex me retornaria um array com [0] => 5.26;7 [1]=> 7;8 Estou usando esse regex (?=\(((?:[^MAIOR()]++|\((?R)\))++)\)) porém ele não me retorna corretamente. Alguem tem alguma luz nesse regex?
  10. diegohamaz1

    Formula de Maior e Menor

    Pessoal como posso fazer uma formula de maior e menor? Seria mais ou menos assim , o ponto e virgula é como fosse um delimitador. SEMAIOR(5 ; SEMENOR ( 2 ; 6) o resultado seria 5. Porem posso ter recursividade tambem SEMAIOR ( 5 ; SEMAIOR(7;8(SEMENOR(5;6))) por exemplo Alguem tem uma função que faça essa conta? Similar a um excel mas nao quero usar biblioteca excel !
  11. saidmrn

    Separar Conteúdo de uma Linha

    Olá pessoal,tudo bem ? Estou precisando separar o conteúdo de uma linha,porém não sei como fazer,não identifico um padrão =/ 1 Arroz, integral, cozido 70,1 124 517 2,6 1,0 NA 25,8 2,7 0,5 5 59 2 Arroz, integral, cru 12,2 360 1505 7,3 1,9 NA 77,5 4,8 1,2 8 110 3 Arroz, tipo 1, cozido 69,1 128 537 2,5 0,2 NA 28,1 1,6 0,1 4 2 4 Arroz, tipo 1, cru 13,2 358 1497 7,2 0,3 NA 78,8 1,6 0,5 4 30 5 Arroz, tipo 2, cozido 68,7 130 544 2,6 0,4 NA 28,2 1,1 0,1 3 6 6 Arroz, tipo 2, cru 13,2 358 1498 7,2 0,3 NA 78,9 1,7 0,4 5 29 7 Aveia, flocos, crua 9,1 394 1648 13,9 8,5 NA 66,6 9,1 1,8 48 119 8 Biscoito, doce, maisena 3,2 443 1853 8,1 12,0 NA 75,2 2,1 1,5 54 37 9 Biscoito, doce, recheado com chocolate 2,2 472 1974 6,4 19,6 Tr 70,5 3,0 1,3 27 48 10 Biscoito, doce, recheado com morango 2,7 471 1971 5,7 19,6 Tr 71,0 1,5 1,0 36 27 11 Biscoito, doce, wafer, recheado de chocolate 1,2 502 2102 5,6 24,7 Tr 67,5 1,8 1,1 23 48 12 Biscoito, doce, wafer, recheado de morango 1,2 513 2148 4,5 26,4 1 67,4 0,8 0,6 14 19 13 Biscoito, salgado, cream cracker 4,1 432 1806 10,1 14,4 NA 68,7 2,5 2,7 20 40 14 Bolo, mistura para 1,0 419 1752 6,2 6,1 Tr 84,7 1,7 2,0 59 28 15 Bolo, pronto, aipim 34,1 324 1355 4,4 12,7 73 47,9 0,7 0,8 85 10 16 Bolo, pronto, chocolate 19,3 410 1715 6,2 18,5 77 54,7 1,4 1,3 75 28 17 Bolo, pronto, coco 29,3 333 1395 5,7 11,3 63 52,3 1,1 1,4 57 16 18 Bolo, pronto, milho 36,7 311 1303 4,8 12,4 82 45,1 0,7 1,0 83 10 19 Canjica, branca, crua 13,6 358 1496 7,2 1,0 NA 78,1 5,5 0,2 2 12 20 Canjica, com leite integral 72,5 112 471 2,4 1,2 1 23,6 1,2 0,3 43 6 21 Cereais, milho, flocos, com sal 9,3 370 1546 7,3 1,6 NA 80,8 5,3 1,0 2 20 22 Cereais, milho, flocos, sem sal 11,2 363 1520 6,9 1,2 NA 80,4 1,8 0,3 2 17 23 Cereais, mingau, milho, infantil 4,7 394 1650 6,4 1,1 NA 87,3 3,2 0,5 219 16 24 Cereais, mistura para vitamina, trigo, cevada e aveia 4,4 381 1595 8,9 2,1 NA 81,6 5,0 3,0 584 72 25 Cereal matinal, milho 5,5 365 1529 7,2 1,0 NA 83,8 4,1 2,5 143 11 26 Cereal matinal, milho, açúcar 4,3 377 1576 4,7 0,7 NA 88,8 2,1 1,5 56 8 27 Creme de arroz, pó 7,3 386 1615 7,0 1,2 NA 83,9 1,1 0,5 7 51 28 Creme de milho, pó 5,7 333 1393 4,8 1,6 NA 86,1 3,7 1,7 323 30 29 Curau, milho verde 81,6 78 328 2,4 1,6 5 13,9 0,5 0,5 53 16 30 Curau, milho verde, mistura para 3,9 402 1683 2,2 13,4 NA 79,8 2,5 0,7 31 9 31 Farinha, de arroz, enriquecida 12,7 363 1519 1,3 0,3 NA 85,5 0,6 0,2 1 4 Preciso separar a proteina,carboidrato,gordura e etc,e são mais de 500 alimentos,logo queria automatizar Alguma idéia para separar ? Agradeço desde já!
  12. Fala pessoal! Sou novato por aqui e estou com um problema que acredito ser simples para programadores mais experientes. Eu preciso converter a IMG TAG de BBCODE para HTML e para tal farei uso de REGEX em PHP. O problema é que existem 6 variações da IMG TAG, são elas: [img]img_patch[/img] [img=200x150]img_patch[/img] [img width=200 height=150]img_patch[/img] [img=width=200xheight=150]img_patch[/img] [img width=200]img_patch[/img] Estou testando aqui e consegui efetuar o REGEX para as 2 primeiras variações: '#\[img=(.+)\]#Usi', '#\[img=?(\d+)?x?(\d+)?\](.*?)\[/img\]#Usi', Preciso de ajuda para as outras variações ou mesmo para um REGEX único que englobe todas as variações. Agradeço muito sua ajuda!!!
  13. quimera

    preg_match_all

    Estou com problemas pra conseguir uma expressão que resolva meu problema: Eu quero pegar tudo que estiver dentro das chaves, mas gostaria de continuar com o objeto do nivel mais alto. //estou querendo pegar todos estados do link $string = "a { color:#f00; &:hover { color:#f90; } &:active { color:#f90; } }"; $pattern = '/(.*)\{&:hover \{(.*)\} \}/'; preg_match_all($pattern , $string, $matches); print_r($matches);
  14. Olá amigos, Tenho a seguinte expressão produto@[a-zA-Z0-9]{10} A principio a expressão me ajuda, porém depois do arroba quando eu digito mais de 10 caracteres, ele continua aceitando, eu gostaria de saber como faço para limitar a quantidade aceitavel de caracteres depois do arroba, não está validando com menos de 10 caracteres, até ai ok, porém se eu colocar mais de 10 ele continua aceitando. Como faço para limitar em 10 o numero de caracteres? Obrigado.
  15. Diego Rinno

    Ajuda com preg_match()

    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.
  16. $MinhaString = "Aventura, Fantasia, Ação 25 de maio a 31 de maio" tentei fazer assim... $Genero = strstr ($MinhaString,"/[^0-9]/",true); mas não retorna nada.
  17. Tenho um campo no cadastro de cliente do Magento onde é aceito tanto CPF quanto CNPJ, e na área de cliente eu queria substituir os números do meio por "x" apenas por segurança, mas não tenho idéia de como fazer porque sou designer, não manjo de regex e tal. O que eu gostaria é assim: Se for CPF, mostrar 282.xxx.xxx-88 Se for CNPJ, mostrar 51.xxx.xxx/0001-48 Eu tenho a função que faz só pra CPF, mas preciso de uma pra CNPJ, e aí eu tenho que usar a variável que pega o valor do db e identificar se é CPF ou CNPJ pelo número de caracteres. Segue abaixo a minha função pra CPF: function mask_vat($vat) { $pattern = '/^(\d{3}).\d{3}.\d{3}-(\d{2})$/'; $replacement = '$1.xxx.xxx-$2'; return preg_replace($pattern, $replacement, $vat); } Chamando a função... <?php echo mask_vat($this->escapeHtml($this->getTaxvat())) ?> Alguma idéia? vlw
  18. Vinicius P da Silva

    Fazer um parser em arquivos zipados

    Olá galera, como vocês estão? Sou estagiário em programação web, tenho apenas 6 meses de experiencia em php, no meu estágio, estamos fazendo um trabalho de monitoramento de rede, usando um software, Fiddler, ele me gera um zip, dentro dele tem vários arquivos que são gerados pelo programa com dados estatísticos da rede. Resumindo tudo isso, ele gera três tipos de arquivos, *.txt, *.xml, *.htm. Para trabalhar com eles criei scripts, que abrem o zip e leia o conteúdo dos arquivos e mandem para um banco de dados, desses três já consegui dois, txt e xml, estou preso no htm, o código padrão que uso para abrir os zips e tratar os arquivos: <?php if (!extension_loaded('zip')) { echo ("Seu arquivo php.ini não está habilitado para esta função!"); } $dir_origem = 'C:\Users\vinicius.psilva\Documents\Fiddler2\Captures'; //$arquivos_zip = glob($dir_origem."\*.zip") foreach (glob($dir_origem."\*.zip") as $arquivo_zip ) { echo "$arquivo_zip" . "<br>"; $zip = new ZipArchive(); if($zip ->open($arquivo_zip) == true){ echo "Aberto" . "<br/>"; $ }else{ echo "default"; return 0; } } } } } ?> Queria ajuda para poder trabalhar com o htm: Passo a passo do que terei que fazer: 1 - Juntar vários zips em uma variável, abrir eles e ler o seu conteúdo; 2 - Pegar todos os arquivo htm, fazer a leitura deles. 3 - Com regex, pegar somente o texto escolhido 4 - Mandar esses dados para um banco de dados Com os outros arquivos eu consegui, um dos scripts utilizados: function getTxt($dirOrig){ $date = date('d-m-Y'); $zip = new ZipArchive(); $arqZips = glob($dirOrig."\*.zip"); foreach($arqZips as $arqZip){ echo $arqZip.'<br/>'; $er = '/[/W/w]*monitoramento(.+)10(.+)_(.+). ?/'; preg_match($er,$arqZip); $txt_name=substr($arqZip,0); $posiçao = strpos($txt_name, "monitoramento"); $name_txt=substr($arqZip,$posiçao); //print_r() ; echo "$name_txt". "<br/>"; echo '<br/>'; $count_c = 1; echo $arqZip . '<br/>'; if ($zip -> open($arqZip) == TRUE) { //ao abrir o próximo arquivo inicializa o contador em zero $total_c=0; // pega o total de xml dentro do zip } echo '<p>'.'<h5>'."TXT Arqs *_s.txt ".'<h5/>'.'<p/>'.'<br/>'; for ($i = 0; $i < $zip->numFiles; $i++) { $filename = $zip->getNameIndex($i); if ($a1 = substr($filename,-6) == "_c.txt"){ $total_c++; } } echo 'O numero de arquivos'.': '."$total_c" . "<br>"; // Define o numero de zeros a esquerda if ($total_c<=9){ $numero_de_zeros = 1; } elseif ($total_c>=10 && $total_c<=99){ $numero_de_zeros = 2; } elseif ($total_c>=100 && $total_c<=999){ $numero_de_zeros = 3; } elseif ($total_c>=1000 && $total_c<=9999){ $numero_de_zeros = 4; } elseif ($total_c>=10000 && $total_c<=99999){ $numero_de_zeros = 5; } while ($count_c <= $total_c) { $file_arq_c = "raw/" . str_pad($count_c, $numero_de_zeros, "0", STR_PAD_LEFT). "_c.txt".'<br/>'; $file_arq_res_c = $zip->getStream($file_arq_c); if ( $file_arq_res_c ) { $texto = ''; while (!feof($file_arq_res_c)) { //realiza o teste para saber se o programa chegou ao final $linha = fgets($file_arq_res_c, 5000); // Linha responsavel por ler todas as linhas do arq e armazenar em strings dentro da variavel $texto = $texto . $linha; } echo $file_arq_c; fclose( $file_arq_res_c); if (ereg("^CONN",$texto)==true){ $connect = '/^CONNECT (?P<connect>[\S]*)/'; preg_match($connect, $texto, $matches); $connect_db = $matches ['connect']; echo "$connect_db" . "<br/>"; $host = '/[\w\W] *Host: (?P<host>[\S]*)/'; preg_match($host, $texto, $matches); $host_db = $matches ['host']; echo "$host_db" . "<br/>"; $proxy = '/[\w\W]*Proxy-Connection: (?P<Proxy_Connection>[\S]*)/'; preg_match($proxy, $texto, $matches); $proxy_db = $matches ['Proxy_Connection']; echo "$proxy_db" . "<br/>"; $user = '/[\w\W] *User-Agent: (?P<User_Agent>[\S]*)/'; preg_match($user, $texto, $matches); $user_db = $matches ['User_Agent']; echo "$user_db" . "<br/>"; $version = '/[\w\W] *Version: (?P<Version>[\S]*)/'; preg_match($version, $texto, $matches); $version_db = $matches ['Version']; echo "$version_db" . "<br/>"; $extensions = '/^[\w\W]Random: (?P<extensions>[\s]*)Ciphers:/'; preg_match($extensions, $texto, $matches); $extensions_db = $matches ['extensions']; var_dump ($extensions_db); return; return; if (mysql_query("INSERT INTO dados (id, get,nome_arq, host, accept, user_agent, referer, cookie, date) VALUES ('NULL' ,'$connect_db','$filename', '$host_db','$proxy_db','$user_db','$version_db','$extensions_db', '$date' '')")) { echo "<p>"; printf(" Row inserted : %d .\n\n\n\n", $db); echo "<br/>"; echo '<p/>'; } else { echo"<br/>"."<br/>"."Nao possivel o envio para o banco, pois foi encontrado um erro: " . "<br/>" . mysql_error().'<br/>'; } mysql_close(); } else{ $p_linha = '/[\w\W]*GET (?P<p_linha>[\S]*)/'; preg_replace($p_linha, $texto, $matches); $get_db = $matches ['p_linha']; echo "$get_db" . "<br/>"; $host = '/[\w\W]*Host: (?P<host>[\S]*)/'; preg_match($host, $texto, $matches); $host_db = $matches ['host']; $accept = '/[\w\W]*Accept: (?P<accept>[\S]*)/'; preg_match($accept, $texto, $matches); $accept_db = $matches ['accept']; $user_agent = '/[\w\W]*User-Agent: (?P<user_agent>[\S]*)/'; preg_match($user_agent, $texto, $matches); $user_agent_db = $matches ['user_agent']; $referer = '/[\w\W]*Referer: (?P<referer>[\S])*/'; preg_match($referer, $texto, $matches); $referer_db = $matches ['referer']; $cookie = '/[\w\W]*Cookie: (?P<cookie>[\s]*)/'; preg_match($cookie, $texto, $matches); $cookie_db = $matches ['cookie']; if (mysql_query("INSERT INTO dados (id, get,nome_arq, host, accept, user_agent, referer, cookie, date) VALUES ('NULL' ,'$get_db','$name_txt', '$host_db','$accept_db','$user_agent_db','$referer_db','$cookie_db', '$date' '')")) { echo "<p>"; printf(" Row inserted : %d .\n\n\n\n", $db); echo "<br/>"; echo '<p/>'; } else { echo"<br/>"."<br/>"."desiste disso " . "<br/>" . mysql_error(); } mysql_close(); } } $count_c++; echo "Fim"; echo "<br/>"; } } } } Seguindo a lógica de cima, pretendo fazer o restante. Agradeço a Ajuda
  19. Boa noite iMasters, Eu estou tentando fazer meu próprio sistema de captcha e gostaria de saber se existe uma maneira de gerar, aleatoriamente um caractere que está dentro do regex... mais ou menos assim: var alph = /[A-Z]/; var num = /0-9/; var captcha = ""; for (var i=0; i<5; i++) { captcha += // caractere random que corresponde a variável alph captcha += // caractere random que corresponde a variável num } Não sei se ficou claro... espero que compreendam. Muito obrigado. ---
  20. Iskandar

    RegExp: match vs exec

    Saudações iMasters, Gostaria que me tirassem uma dúvida bem simples... qual a diferença entre match e exec, em uma expressão regular? Poderiam mostrar exemplos de ambas sendo usadas? Grato desde já e boas festas a todos. --
×

Important Information

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