cómo excluir un rango de números usando expresiones regulares

cómo excluir un rango de números usando expresiones regulares

Estoy intentando escribir una expresión regular para cubrir todos los números que comienzan con 1809 y excluyen algunos rangos:

Es necesario excluir los rangos

A partir de 1809 y seguido de:

  • 201,203,205,212,214,222,228,232,235,249,256,260,2643983
  • 266,2724728,2725724,299,315,330,350-354,356-361,3670229
  • 370.383.386.389.391.394-399.401-411.413.424-429.451-469
  • 477-481.484.485.488.490-499.501.502.504-507.509.510.512
  • 514.516.517.519.520.543.545.606.615.618.661-668.670-675
  • 694.696-698.7079832.710.720-722.727.729.744.747.749-753
  • 756-765,767,769,773,774,778,7837079,7839522,792-799,809
  • 823-826.828.830-832.834-844.895-898.950.953

Respuesta1

Escribí manualmente la expresión regular que coincide con todos los patrones que desea excluir:

/1809(20[135]|21[24]|22[28]|23[25]|249|256|26[06]|2643983|2724728|2725724|299|315|330|35[0-46-9]|36[01]|3670229|370|38[369]|39[14-9]|40[1-9]|41[013]|42[4-9]|45[1-9]|46[0-9]|47[7-9]|48[01458]|49[0-9]|50[124-79]|51[024679]|520|54[35]|606|61[58]|66[1-8]|67[0-5]|69[46-8]|7079832|710|72[0-279]|74[479]|75[0-36-9]|76[0-579]|77[348]|7837079|7839522|79[2-9]|809|82[3-68]|83[0-24-9]|84[0-4]|89[5-8]|95[03])/

Sin embargo, no estoy seguro de cómo generaría automáticamente esta expresión regular dada la información anterior.

información relacionada