Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#正则表达式端口验证49152至65535_C# - Fatal编程技术网

C#正则表达式端口验证49152至65535

C#正则表达式端口验证49152至65535,c#,C#,在阅读了有关端口和建议端口的内容后,我发现要遵守Internet Assigned Numbers Authority(IANA)对专用端口的建议,您应该只使用49152到65535之间的端口。因此,我尝试使用正则表达式模式检查用户是否输入了该范围内的端口。我把这些拼凑在一起,头疼不已,我不得不阅读很多教程才能理解到这一点,正则表达式模式真的不是人性化的。基本上,我正在寻找一个比我更有知识的人来验证它是否正确。我的测试似乎表明了这一点,但也许我遗漏了一些我只是想确定的东西 string patt

在阅读了有关端口和建议端口的内容后,我发现要遵守Internet Assigned Numbers Authority(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])$";

问候

为什么要使用正则表达式

string input = "51204";
int portNumber;
if (int.TryParse(input, out portNumber) 
    && portNumber >= 49152 
    && portNumber <= 65535)
{
    // Valid value...
}
string input=“51204”;
int端口号;
if(int.TryParse(输入,输出端口号)
&&端口号>=49152

&&portNumber为什么使用正则表达式

string input = "51204";
int portNumber;
if (int.TryParse(input, out portNumber) 
    && portNumber >= 49152 
    && portNumber <= 65535)
{
    // Valid value...
}
string input=“51204”;
int端口号;
if(int.TryParse(输入,输出端口号)
&&端口号>=49152
&&端口号
int端口;
bool InRange=Int32.TryParse(StrPort,out-port)和&port>=49152和&port
int-port;

bool InRange=Int32.TryParse(StrPort,out port)&&port>=49152&&port使用并验证生成的整数到边界。

使用并验证生成的整数到边界。

这可能不是您问题的答案,但您可以使用:

int port = Convert.ToInt32(input);
if (port >= 49152 && port <= 65535) {
  //port is valid
}
int-port=Convert.ToInt32(输入);

如果(端口>=49152&&port这可能不是您问题的答案,但您可以使用:

int port = Convert.ToInt32(input);
if (port >= 49152 && port <= 65535) {
  //port is valid
}
int-port=Convert.ToInt32(输入);

如果(port>=49152&&port严重吗?正则表达式用于检查整数边界?我认为这是一个典型的情况,您不应该使用正则表达式I同意mensi;为什么不能使用<和>进行测试?您需要了解字符串和整数之间的区别,以及它们在内存中的表示方式和原因。尽管如此,还是要使用+1。正则表达式似乎正确。说真的吗?正则表达式检查整数边界?我认为这是一个典型的情况,你不应该使用正则表达式。我同意mensi的观点;为什么你不能只使用<和>来测试?你需要理解字符串和整数之间的区别,以及它们在内存中的表示方式和原因。尽管如此,+1表示努力。正则表达式似乎是正确的。我可以我从来没有想到要这么做,谢谢。我可以看到这里面的逻辑。我从来没有想到要这么做,谢谢