最近在对别人的程序做可视化封装,稍微涉及到了一点正则表达式,有感而发,写下这篇。举个例子 匹配端口号,众所周知 端口号的范围是0-65535。但是端口0不常用,所以一般性认为端口号是从1-65535. 那我们应该如何用正则表达式匹配端口号呢?(省流:\b(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3})\b)写正则表达式的第一步是分层,准确点来说是分类,这样会给你的书写带来极大地帮助,不然就是一团浆糊那么端口号可以简单分为以下几层第一层65530-65535第二层65500-65529第三层65000-65499第四层60000-64999第五层10000-59999第六层1000-9999第七层100-999第八层10-99第九层1-9是不是看着有点吓人?别慌,我们来简化一下,可以发现第六七八九层格式一样,所以我们可以化简一下,第六七八九合为一层,也就是1-9999于是我们最终得到了这张分层表第一层65530-65535第二层65500-65529第三层65000-65499第四层60000-