繁体   English   中英

C#字符串格式验证

[英]c# string format validate

更新:可接受的格式为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>部分? 感谢您的意见。

您可以为此使用正则表达式。

如果我对您的理解正确,则后续输入应通过验证:

xxx|1232|32133
xxx|5345|23423
XXX|1323|45645

并且以下不应该:

YYY|1231|34423
XXX|ds12|sda43

如果我的假设是正确的,则此Regex应该可以解决问题:

XXX\\|\\d+\\|\\d+

它能做什么?

  • 首先,它查找三个X ...(如果它是大写或小写的X(?:XXX|xxx)替换XXX或使用“不区分大小写的正则表达式标志” -demo都没关系
  • 用管道( | )分隔...
  • 然后寻找多个数字...
  • 用管道( | )分隔...
  • 最后以另一组一个或多个数字结尾

您可以在此处查看演示: Regex101演示

并且由于您使用的是C#,因此Regex.IsMatch()可能最适合您。 如果您不熟悉正则表达式以及如何在C#中使用它们,可以在这里阅读。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM