更新:可接受的格式为ADD ||。 。 我需要检查服务器获取的请求是否采用这种格式,并且数字是否在<>之间。 之后,我必须读取数字并将其相加并将结果写回。因此,如果格式不适合例如ADD | <5> | <8> 我必须拒绝它并做出特定的错误消息(它不是数字,格式错误,等等)。我检查了ADD |部分,我将它们放在一个数组中,可以检查数字是否不是数字。但是我无法检查数字是否在<>中,因为数字可以包含多个数字,并且ADD | <7> | <13>的项数与ADD | <2358> | <78961156>之类的数字不同。如何检查数字是否在<>之间?
请为我提供以下帮助:我需要制作一个服务器-客户端控制台应用程序,并且我想验证来自客户端的请求。可接受的格式为XXX|<number>|<number>
。
我可以像这样分割邮件:
string[] messageProcess = message.Split('|');
,我可以检查它是否是数字:
if (!(double.TryParse(messageProcess[1], out double number1)) || !(double.TryParse(messageProcess[2], out double number2)))
但是如何检查<number>
部分?
谢谢您的建议。
答案 0 :(得分:1)
您可以为此使用正则表达式。
如果我对您的理解正确,则后续输入应通过验证:
xxx|1232|32133
xxx|5345|23423
XXX|1323|45645
及以下内容不应:
YYY|1231|34423
XXX|ds12|sda43
如果我的假设正确,那么此Regex应该可以解决问题:
XXX\|\d+\|\d+
它是做什么的?
X
用XXX
替换(?:XXX|xxx)
或使用“不区分大小写的正则表达式标志”- demo)|
)分隔... |
)分隔... 您可以在此处查看演示:Regex101 Demo
由于您使用的是C#,因此Regex.IsMatch()
可能最适合您。如果您不熟悉正则表达式以及如何在C#中使用它们,可以阅读here。