在阅读了端口和建议的端口之后,我发现为了遵守互联网号码分配机构(IANA)对私有端口的建议,您应该只使用49152到65535之间的端口.因此我尝试使用正则表达式来检查用户是否输入了该范围内的港口.我把这个拼凑起来非常令人头疼,我不得不阅读很多教程来获得这个远程正则表达式模式真的不是人类友好的.基本上我正在寻找比我更多知识的人来验证它是否正确.我的测试似乎表明了它,但也许我错过了一些我想确定的东西.
string pattern = @"^(6553[0-5]|655[0-2]\d|65[0-4]\d\d|6[0-4]\d{3}|5\d{4}|49[2-9]\d\d|491[6-9]\d|4915[2-9])$";
Run Code Online (Sandbox Code Playgroud)
问候!
为何使用正则表达式?
string input = "51204";
int portNumber;
if (int.TryParse(input, out portNumber)
&& portNumber >= 49152
&& portNumber <= 65535)
{
// Valid value...
}
Run Code Online (Sandbox Code Playgroud)