当条件为 true 时,C# 在字符上拆分字符串

本文关键字:字符 拆分 字符串 条件 true | 更新日期: 2023-09-27 18:31:07

我希望使用String.split方法来拆分":"字符上的字符串。然而,问题在于,分裂也在时间等事情上分裂。我不希望这种情况发生。无论如何,我可以指定一个谓词,只有当 true 时,字符串才应该被拆分。

理想情况下,我只希望在搜索字符两侧的字符不是数字时拆分字符串?


编辑:

示例输入:

已发行: 08/02/1922 描述: 示例 描述时间: 03:43

期望输出:

["已发布"、"1922 年 8 月 2 日描述"、"示例描述时间"、" 03:43"]

当条件为 true 时,C# 在字符上拆分字符串

您可以使用

Regex来实现此目的:

 var output = Regex.Split(input,"(?<!''d''s*)''s*:''s*|''s*:''s*(?!''s*''d)");
 //Example:
 string input = "a:b:c:12:00:00";
 //Output
 a
 b
 c
 12:00:00

对于给出的示例,只需按":"(逗号后跟空格)进行拆分即可完成这项工作。根据您的数据格式,它可能对您来说足够好。

使用正则表达式找出您的字符串类型,如果它与您的 cretirea 匹配,则进行拆分。如下所示

        Regex r = new Regex(".[0-9]:.[0-9]", RegexOptions.IgnoreCase);
        string s = "00:46";
        Match m = r.Match(s);
        string[] str = !m.Success ? s.Split(':') : null;