我正在通过串口接收数据,我想验证数据格式是否正确。我期待的数据格式是这样的

数字,数字,数字,数字 -> 1200,2500,6500,90

我正在使用这样的正则表达式
Regex.IsMatch(s, @"^[0-4095]\,[0-4095]\,[0-4095]\,[0-4095]$")
使用 4095,因为数字范围在 0 到 4095 之间。需要帮助。提前致谢。

最佳答案

您可以使用简单的 LINQ 表达式和 int.TryParse 方法在不需要依赖正则表达式的情况下做到这一点:

  var sections = e.Split(',');
  sections.Count() == 4 &&
  sections.All(s => int.TryParse(s, out int i) && i >= 0 && i <= 4095);

10-06 02:03