Una de las cosas mas difíciles o que tienen una curvatura de aprendizaje diferente son las expresiones regulares. Pero una vez que encuentras el truco ya no es tan difícil.

Les dejo los mejores manuales de expresiones regulares y los ejemplos mas esenciales o importantes.
Expresiones regulares que siempre se ocupan:
Expresión regular para números de telefonos
$string = "(232) 555-5555"; if (preg_match('/^\(?[0-9]{3}\)?|[0-9]{3}[-. ]? [0-9]{3}[-. ]?[0-9]{4}$/', $string)) { echo "This is a valid phone number."; }
Una de las cosas mas difíciles o que tienen una curvatura de aprendizaje diferente son las expresiones regulares. Pero una vez que encuentras el truco ya no es tan difícil.

Les dejo los mejores manuales de expresiones regulares y los ejemplos mas esenciales o importantes.
Expresiones regulares que siempre se ocupan:
Expresión regular para números de teléfonos
$string = "(232) 555-5555"; if (preg_match('/^\(?[0-9]{3}\)?|[0-9]{3}[-. ]? [0-9]{3}[-. ]?[0-9]{4}$/', $string)) { echo "Esto es un teléfono válido"; }
Expresión regular para códigos postales
$string = "55324-4324"; if (preg_match('/^[0-9]{5,5}([- ]?[0-9]{4,4})?$/', $string)) { echo "Cópdigo Postal válido"; }
Expresión regular para Username
function validate_username( $username ) { if(preg_match('/^[a-zA-Z0-9_]{3,16}$/', $_GET['username'])) { return true; } return false; }
Expresión regular para XHTML/XML tag
function get_tag( $tag, $xml ) { $tag = preg_quote($tag); preg_match_all('{<'.$tag.'[^>]*>(.*?).'}', $xml, $matches, PREG_PATTERN_ORDER); return $matches[1]; }
Expresión regular para URL o dirección
$szString = "http://www.talkPHP.com"; if (preg_match('/^(http|https|ftp):\/\/([\w]*)\.([\w]*)\.(com|net|org|biz|info|mobi|us|cc|bz|tv|ws|name|co|me)(\.[a-z]{1,3})?\z/i', $szString)) echo "Es una dirección URL válida";
Expresión regular para Email
$string = "first.last@domain.co.uk"; if (preg_match( '/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/', $string)) { echo "Este es un email válido."
Expresión regular para Número de Tarjeta de Crédito
function luhn (cc) { var sum = 0; var i; for (i = cc.length - 2; i >= 0; i -= 2) { sum += Array (0, 2, 4, 6, 8, 1, 3, 5, 7, 9) [parseInt (cc.charAt (i), 10)]; } for (i = cc.length - 1; i >= 0; i -= 2) { sum += parseInt (cc.charAt (i), 10); } return (sum % 10) == 0; }
Fuente:smashingmagazine.com