我的输入数字是一个int.但输入数字必须在-2055到2055的范围内,我想通过使用正则表达式来检查.
那么无论如何要写一个正则表达式来检查一个数字是否在(-2055,2055)中?
if语句用于检查数字是否在范围内更容易.但是我正在写一个解释器,所以我应该使用正则表达式来检查输入数字
我检查了stackExchange描述,算法问题是允许的主题之一.所以这里.
给定一个范围的输入,其中开始和结束的数字具有相同的位数(例如,2,3或4),我想编写代码来生成一组正则表达式,当依次对数字进行检查时告诉我这个数字是否在原始范围内.
例如:如果范围是145-387,那么146,200和280都将匹配所生成的正则表达式之一,而144,390(过去就是290)和445(过去就是345)则不会.
我一直在想结果将是一个正则表达式列表,如:
14[5-9] // match 145-149
1[5-9]0-9] // 150-199
2[0-9][0-9] // 200-299
3[0-7][0-9] // 300-379
38[0-7] // 380-387
Run Code Online (Sandbox Code Playgroud)
然后软件检查该号码将测试以查看被测试的3位数代码是否与这些中的任何一个匹配.
那么生成表达式集的最佳方法是什么?
我提出的最新(系列)是:
我错过了什么吗?即使在上面我还有一些细节,我正在掩饰,似乎有些东西可以从算法剑中掠过细节.但我提出的其他事情甚至比这更糟糕.