我有一个电话前缀列表(大约50k),我想将它们传递给正则表达式以减少行数。
有什么工具可以自动完成吗?有没有人知道任何脚本,会为我做(php, javascript, python等),或者我怎么能做到这一点?
为了更好的理解。
我有这个…
前缀 | 国家 | 62 | 印尼 |
---|---|
6221 | 印尼(雅加达) |
6222 | 印尼(其他城市) |
62251 | 印尼(其他城市) |
6231 | 印尼(其他城市) |
62341 | 印尼(其他城市) |
62361 | 印尼(其他城市) |
62411 | 印尼(其他城市) |
6261 | 印尼(其他城市) |
62778 | 印尼(其他城市) |
628 | 印尼手机 |
6281 | 印尼手机 |
6282 | 印尼手机 |
6283 | 印尼手机 |
6285 | 印尼手机 |
6286 | 印尼手机 |
6287 | 印尼手机 |
6288 | 印尼手机 |
62877 | 印度尼西亚MOBILE XL |
62878 | 印度尼西亚MOBILE XL |
62879 | 印度尼西亚MOBILE XL |
不确定,最终目标是什么,但如果您正在从列表生成regexp,为什么要担心优化regexp的长度,而不仅仅是让regexp编译器进行优化。python示例:
prefixes = ["6222", "62251", "6231", "62341", "62361", "62411", "6261"]
regex_as_str = "^("+"|".join(prefixes)+")d+$" # Creates "^(6222|62251|6231|62341|62361|62411|6261)d+$"
regex = re.compile(regex_as_str)