gpt4 book ai didi

c# - 检查字符串的格式

转载 作者:太空宇宙 更新时间:2023-11-03 19:27:20 24 4
gpt4 key购买 nike

这可能已经在某个地方得到了回答,但是因为有数百万篇关于字符串格式的不相关帖子。

取下面的字符串:

24:Something(true;false;true)[0,1,0]

在这种情况下,我希望能够做两件事。我需要检查是否满足以下所有条件:

  • 只有一个:使用 Split() 实现,无论如何我都需要使用它来分离两个部分。
  • : 之前的整数是一个1-3位的int 简单的int.parse逻辑
  • () 存在,并且存在“Something”,在本例中是任何少于 10 个字符的字符串
  • [] 存在并且其中至少有 1 个整数。另外,确保 [] 中的元素是用 , 分隔的整数

我怎样才能最好地做到这一点?编辑:我已经划掉了我到目前为止所取得的成就。

最佳答案

正则表达式是最快的方法。根据复杂性,它也可能是计算成本最高的。

这似乎可以满足您的需求(我不是那么好所以可能有更好的方法来做到这一点):

^\d{1,3}:\w{1,9}\((true|false)(;true|;false)*\)\[\d(,[\d]) *\]$

解释

\d{1,3}1到3位数字

:后面跟一个冒号

\w{1,9}后跟 1-9 个字符的 alpha-numeric 字符串,

\((真|假)(;真|;假)*\)后跟包含“true”或“false”的括号,后跟任意数量的“;true”或“;false”,

\[\d(,[\d])*\]后跟另一组包含数字的括号,后跟任意数量的逗号+数字。

字符串开头和结尾的 ^ 和 $ 表示字符串的开头和结尾,这很重要,因为我们正在尝试验证整个字符串是否与格式匹配。

代码示例

var input = "24:Something(true;false;true)[0,1,0]";

var regex = new System.Text.RegularExpressions.Regex(@"^\d{1,3}:.{1,9}\(.*\)\[\d(,[\d])*\]$");
bool isFormattedCorrectly = regex.IsMatch(input);

信用@伊恩尼尔森

关于c# - 检查字符串的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com