{"id":10,"date":"2024-07-19T07:27:43","date_gmt":"2024-07-19T10:27:43","guid":{"rendered":"https:\/\/jonielgallo.com\/?p=10"},"modified":"2024-07-19T07:32:42","modified_gmt":"2024-07-19T10:32:42","slug":"desvendando-as-expressoes-regulares","status":"publish","type":"post","link":"https:\/\/jonielgallo.com\/index.php\/2024\/07\/19\/desvendando-as-expressoes-regulares\/","title":{"rendered":"Desvendando as Express\u00f5es Regulares"},"content":{"rendered":"\n<p>Express\u00f5es regulares, ou regex, s\u00e3o ferramentas poderosas que ajudam desenvolvedores a manipular e processar texto de forma eficiente. Elas s\u00e3o usadas para realizar buscas e substitui\u00e7\u00f5es de padr\u00f5es em strings, e s\u00e3o indispens\u00e1veis em tarefas como valida\u00e7\u00e3o de dados e an\u00e1lise de texto.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">O que s\u00e3o Express\u00f5es Regulares?<\/h4>\n\n\n\n<p>Uma express\u00e3o regular \u00e9 uma sequ\u00eancia de caracteres que define um padr\u00e3o de pesquisa. Esse padr\u00e3o \u00e9 utilizado para encontrar ou substituir partes de uma string. Em desenvolvimento web, regex \u00e9 fundamental para validar entradas de formul\u00e1rios, extrair informa\u00e7\u00f5es de documentos e transformar dados de texto.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Por que Usar Express\u00f5es Regulares?<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Efici\u00eancia<\/strong>: Executam opera\u00e7\u00f5es complexas de busca e substitui\u00e7\u00e3o rapidamente.<\/li>\n\n\n\n<li><strong>Flexibilidade<\/strong>: Adaptam-se a uma vasta gama de padr\u00f5es de texto.<\/li>\n\n\n\n<li><strong>Redu\u00e7\u00e3o de c\u00f3digo<\/strong>: Simplificam opera\u00e7\u00f5es que, sem regex, exigiriam v\u00e1rias linhas de c\u00f3digo.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Aplica\u00e7\u00f5es Comuns de Express\u00f5es Regulares<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Valida\u00e7\u00e3o de Formul\u00e1rios<\/strong>: Assegura que os dados inseridos pelos usu\u00e1rios sigam formatos espec\u00edficos.\n<ul class=\"wp-block-list\">\n<li><strong>CEP<\/strong>: <code>^\\d{5}-\\d{3}$<\/code> (valida CEPs brasileiros formatados).<\/li>\n\n\n\n<li><strong>URLs<\/strong>: <code>^(https?:\\\/\\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\\/\\w \\.-]*)*\\\/?$<\/code> (valida URLs completas).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>An\u00e1lise de Logs<\/strong>: Extrai informa\u00e7\u00f5es espec\u00edficas de arquivos de log, como endere\u00e7os IP ou c\u00f3digos de status HTTP.\n<ul class=\"wp-block-list\">\n<li><strong>IPs<\/strong>: <code>\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b<\/code> (captura endere\u00e7os IPv4).<\/li>\n\n\n\n<li><strong>Status HTTP<\/strong>: <code>\" \\d{3} \"<\/code> (encontra c\u00f3digos de status HTTP em logs).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Manipula\u00e7\u00e3o de Texto<\/strong>: Realiza substitui\u00e7\u00f5es complexas ou remo\u00e7\u00f5es de padr\u00f5es indesejados em textos.\n<ul class=\"wp-block-list\">\n<li><strong>Censura de Palavras<\/strong>: <code>s\/\\b(palavraProibida)\\b\/****\/gi<\/code> (substitui uma palavra proibida por asteriscos).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Exemplos Detalhados em PHP<\/h4>\n\n\n\n<p><strong>Valida\u00e7\u00e3o de E-mail<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;?php<br>$email = \"exemplo@dominio.com.br\";<br>$regex = \"\/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$\/\";<br>if (preg_match($regex, $email)) {<br>  echo \"O endere\u00e7o de e-mail \u00e9 v\u00e1lido.\";<br>} else {<br>  echo \"O endere\u00e7o de e-mail n\u00e3o \u00e9 v\u00e1lido.\";<br>}<br>?><br><\/code><\/pre>\n\n\n\n<p><strong>Extra\u00e7\u00e3o de Datas de um Texto<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;?php\n$texto = \"Os eventos ocorrer\u00e3o em 15\/08\/2024 e 20\/09\/2024.\";\npreg_match_all(\"\/\\b\\d{1,2}\\\/\\d{1,2}\\\/\\d{4}\\b\/\", $texto, $datas);\nprint_r($datas[0]);\n?&gt;\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Melhores Pr\u00e1ticas com Express\u00f5es Regulares<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Evite regex excessivamente complexas<\/strong>: Isso pode tornar seu c\u00f3digo dif\u00edcil de ler e manter.<\/li>\n\n\n\n<li><strong>Use grupos de captura para extrair informa\u00e7\u00f5es espec\u00edficas<\/strong> de uma string, o que pode ser extremamente \u00fatil em an\u00e1lises de dados ou processamentos espec\u00edficos.<\/li>\n\n\n\n<li><strong>Teste suas express\u00f5es regularmente<\/strong> em diferentes cen\u00e1rios para garantir que elas se comportem como esperado.<\/li>\n<\/ul>\n\n\n\n<p>Express\u00f5es regulares s\u00e3o uma das ferramentas mais \u00fateis para desenvolvedores web, oferecendo solu\u00e7\u00f5es poderosas para problemas comuns de manipula\u00e7\u00e3o de texto. A pr\u00e1tica constante e a experimenta\u00e7\u00e3o ajudar\u00e3o voc\u00ea a dominar essa habilidade vital, aumentando sua produtividade e efic\u00e1cia no desenvolvimento de aplica\u00e7\u00f5es web.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Express\u00f5es regulares, ou regex, s\u00e3o ferramentas poderosas que ajudam desenvolvedores a manipular e processar texto de forma eficiente. Elas s\u00e3o usadas para realizar buscas e substitui\u00e7\u00f5es de padr\u00f5es em strings, e s\u00e3o indispens\u00e1veis em tarefas como valida\u00e7\u00e3o de dados e an\u00e1lise de texto. O que s\u00e3o Express\u00f5es Regulares? Uma express\u00e3o regular \u00e9 uma sequ\u00eancia de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":12,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":1,"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":11,"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions\/11"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/media\/12"}],"wp:attachment":[{"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jonielgallo.com\/index.php\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}