Hola.
A mí algo que me sirvió mucho es esto:
http://www.regextester.com/pregsyntax.html
Un ejemplo sería el siguiente:
Código PHP:
function validar_fecha($fecha){
return preg_match('/^([0-9]{1,2})[\/.-]([0-9]{1,2})[\/.-]([0-9]{4})$/', $fecha);
}
A esta función le pasamos como parámetro una fecha para validar si está en un formato válido para nosotros (en este caso serían válidos los formatos DD/MM/AAAA, DD.MM.AAA y DD-MM-AAAA).
La regla comienza con
/^ y termina con
$/. En este ejemplo se valida que haya uno o dos números (
{1-2}) que sean del 0 al 9 (
[0-9]) que representan el día; seguidos de una barra (
/, que está escapada con otra barra invertida
\) ó un punto (
.) ó un guón (
-), seguido nuevamente por uno o dos números que representan el mes; luego otra barra, punto o guión; y, finalmente un número (
[0-9]) de cuatro cifras (
{4}) que es el año.
Hay que tener en cuenta que esto sólo validaría el formato de la fecha, pero no valida que la fecha sea correcta (por ejemplo: 31 de febrero de 2012 pasaría esta validación de formato pero no es una fecha válida).
Un saludo.