Alguns regex (expressões regulares) úteis

Tinha isso guardado num txt bem antigo, mas me são de grande utilidade:

#Email:
^([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([a-z,A-Z]){2,3}([0-9,a-z,A-Z])?$

#CEP:
^[0-9]{5}-{1}[0-9]{3}$

#Data (mm/dd/yyyy):
^((0?[1-9]|[12]d)/(0?[1-9]|1[0-2])|30/(0?[13-9]|1[0-2])|31/(0?[13578]|1[02]))/(19|20)?d{2}$

#Data (dd/mm/yyyy):
^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/[12][0-9]{3}$
#Hora:
^(?:[01]d|2[0-3]):[0-5]d:[0-5]d$

#Decimal:
^[+-]?((d+|d{1,3}(,d{3})+)(.d*)?|.d+)$

#float ou int
^([0-9])+(\.[0-9]{1,2})?$

#CPF:
^[0-9]{3}.[0-9]{3}.[0-9]{3}-[0-9]{2}$

Método para validar erros em expressões regulares

Em um determinado momento, tive a necessidade de efetuar validações em expressões regulares inseridas pelo usuário em textbox.

Abaixo segue método que eu utilizei para esta validação:

function validaRegex($regex, $escapar=false)
	{
		if($escapar) $regex = str_replace('/', '/', addslashes($regex));
		$teste = null;
		ini_set('track_errors', 1);
		$teste = @preg_match("/{$regex}/", "<a href="http://$1" target="_blank">[LINK]</a>", $teste);
		$ret = @strip_tags($php_errormsg);
		ini_set('track_errors', 0);
		$r = explode(':', $ret);
		return ($ret) ? array(false, trim($r[1])) : Array(true);
	}

Para explicar o funcionamento:
A variável $teste  (sim, faltou criatividade) recebe o resultado do preg_match, sendo que este recebe no primeiro parametro o valor digitado pelo usuário e o segundo parametro pode ser qualquer porcaria que vier em mente, já que o que nos interessa é se o regex do usuário tem erro ou não

O retorno é um array, sendo que a posição [0] retorna True ou False, e, havendo erro  no regex, a posição [1] retorna a mensagem de erro do php

———————————————-
Posted Listening: “Lights Out – UFO”