如何使用正则表达式排除数字范围

如何使用正则表达式排除数字范围

我正在尝试编写一个正则表达式,以涵盖以 1809 开头并排除某些范围的所有数字:

需要排除的范围

从 1809 开始,依次为:

  • 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

答案1

我手动编写了匹配您想要排除的所有模式的正则表达式:

/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])/

不过,我不确定您如何根据上述信息自动生成此正则表达式。

相关内容