Como encontrar datas usando RegEx
Filtrar conteúdos por data é algo extremamente comum, seja em sistemas, planilhas, entre outros lugares. Por isso, no tutorial de hoje eu mostrarei como você pode usar RegEx para encontrar datas nesses casos.
A busca por data é muito simples de ser feita, além de possibilitar uma série de especificações para cada busca. É possível criar expressões regulares que busquem desde datas do mesmo mês ou ano, até as que buscam por datas de um trimestre, semestre ou década, por exemplo.
Abaixo você verá alguns exemplos de como encontrar datas através das expressões regulares, assim como de que formas você pode customizar a busca.
Buscando datas de um mês específico
Para começar, darei o exemplo de como buscar datas de um mês específico usando RegEx. Neste caso, definiremos um valor fixo para o mês que desejamos encontrar, enquanto os demais números serão buscados através de expressões regulares simples.
O código usado para busca por mês é o seguinte:
\d{2}\/01\/\d{4}
Em todas as expressões regulares de busca por datas apresentadas neste artigo, usaremos bastante a expressão \d
. Essa expressão é responsável por buscar qualquer dígito de 0 a 9, e também foi muito utilizada em nosso artigo sobre como encontrar números de documentos.
Assim sendo, logo de início temos a expressão \d{2}
, que buscará pelos dois números referentes ao dia do mês. Em seguida, a busca pela barra que separa dia e mês é feita através da expressão \/
(o uso da barra invertida é necessário, pois a barra comum pode causar erros na expressão).
Logo após, vem o número do mês específico, sem o uso de qualquer expressão. No exemplo acima, está especificado o mês de Janeiro 01
, então basta alterá-lo para o número referente ao mês que deseja encontrar.
Já no final, temos mais uma vez a expressão \/
buscando a barra que separa mês e ano. E, por fim, buscaremos os quatro números referentes ao ano através da expressão \d{4}
.
Assim funciona a busca por datas de um mês específico usando RegEx.
Buscando grupos de meses (bimestre, trimestre, etc.)
Além de poder buscar por um mês específico, também é possível usar expressões regulares para encontrar datas de um grupo de meses. Esses grupos podem seguir uma lógica (ex.: bimestres, trimestres, semestres, etc.) tanto quanto conterem meses não sequenciais.
Para isso, o código será basicamente o mesmo usado acima, porém, trocando o número do mês pelo código referente ao grupo de meses. Para exemplificar, a busca pelo primeiro bimestre do ano seria feita da seguinte forma:
\d{2}\/0[12]\/\d{4}
No lugar do número do mês, vai a expressão 0[12]
. Essa expressão fará a busca por meses nos quais o número inicial é 0 e o número final é um dos números contidos nos []
, nesse caso, 1 ou 2. Ou seja, a expressão buscará pelos meses 01 e 02 (Janeiro e Fevereiro, respectivamente).
Já no caso de grupos nos quais variam tanto o número inicial quanto o número final do mês, é necessário criar uma alternância usando o caractere |
. Para buscar o segundo semestre do ano, por exemplo, a expressão usada seria (0[789]|1[012])
.
Em resumo, o uso do caractere |
faz com que a expressão busque primeiro pelos meses 07, 08 e 09 e, em seguida, pelos meses 10, 11 e 12. Essa regra também pode ser usada para buscar meses não sequenciais.
Buscando datas de um ano específico
Assim como a busca por mês, é possível encontrar datas referentes a um ano específico usando uma expressão regular bem simples. Inclusive, o código para os dois casos é bastante parecido.
No caso da busca por ano, o código usado é o seguinte:
\d{2}\/\d{2}\/2000
De início, é usada a expressão \d{2}\/
duas vezes. Essa é, basicamente, a mesma expressão usada no início do código da busca por mês. Elas buscarão o dia e o mês da data, além das barras que separam dia, mês e ano.
Por fim, basta inserir o ano que deseja buscar. No exemplo acima, a expressão buscará por datas do ano 2000. Simples, não é mesmo!?
Buscando por décadas, séculos, etc.
A busca por datas de um ano específico também pode ser adaptada para buscar por datas de diversos anos. Você pode, por exemplo, encontrar datas de uma mesma década ou século usando expressões regulares.
A expressão usada é basicamente a mesma da busca por ano, contudo, faremos pequenas mudanças justamente no ano a ser buscado. Em vez de definir um ano específico, utilizaremos a expressão \d
para buscar por vários anos diferentes.
Para buscar por datas de uma mesma década, por exemplo, você pode usar a seguinte expressão:
\d{2}\/\d{2}\/199\d
No exemplo acima, temos ao final da expressão o código 199\d
. Dessa forma, a expressão buscará por datas da década de 1990, já que o \d
ao final busca por qualquer dígito (0 a 9).
Também é possível buscar por datas de duas décadas diferentes. Com a expressão final 19[56]\d
, por exemplo, o uso dos números entre []
faz com que a busca seja feita por datas das décadas de 1950 e 1960.
Já no caso de encontrar datas de um mesmo século, a expressão final seria 19\d{2}
. Assim, temos definidos apenas os dois primeiros dígitos que indicam os anos 1900, enquanto que os dois últimos podem ser qualquer um devido à expressão \d{2}
.
Com todos esses exemplos, fica mais fácil adaptar a expressão de busca por data para sua necessidade. Entretanto, se houver dúvidas, comente logo abaixo que tentarei te ajudar a montar sua expressão regular.
E para ficar por dentro dos nossos tutoriais, siga nossas redes sociais ou se inscreva em nossa newsletter mensal no rodapé do site.
Paulistano, 28 anos, Designer, bem geek e criador do Ene Maneiras.