Cuestión : ayudarme a entender la expresión regular

¿Puede alguien ayudarme por favor a entender lo que estoy haciendo mal?  Quiero una expresión con la cual valide un número entre 1900 y 2099. esto la leva de la expresión I para arriba:
[19|20] + [0-9] {2} que mi pensamiento aquí es los primeros dos carácteres pueden ser “19” o “20” entonces los dos siguientes numéricos.  pero cuando lo pruebo parece que cualquier combinación de número a partir de la 0-2 es válida no importa qué la longitud.  
class= del

Respuesta : ayudarme a entender la expresión regular

[19|20] significa cualquier carácter: 1, 9, 2, o 0 -- la barra vertical es redundante. El más significa uno o más del anterior, tan uno o más de 1, 9, 2, o 0. El resto significa exactamente dos dígitos numéricos.

Intentar el patrón siguiente en lugar de otro:
1:
(19|20) \ d {2}
Otras soluciones  
 
programming4us programming4us