用于字母数字端口范围的正则表达式

时间:2015-07-09 11:58:13

标签: regex perl

我的正则表达式是:

([a-zA-Z]|[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])

请告诉我哪里错了?

1 个答案:

答案 0 :(得分:1)

你的正则表达式匹配2个选项:1个带有[a-zA-Z]的大写或小写字母,或带有[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]的数字。

看来你正在寻找

\b([a-zA-Z]+[0-9]*|(?:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))\b

请参阅demo

或者,如果字符串是针对正则表达式单独测试的,请使用^ / $个锚点:

^([a-zA-Z]+[0-9]*|(?:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))$

请参阅another demo