1

我正在寻找使用 String.split 方法来拆分 ':' 字符上的字符串。然而,问题是分裂也在诸如时间之类的事情上分裂。我不希望这种情况发生。无论如何我可以指定一个谓词,只有当它为真时,字符串才应该被拆分。

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


编辑:

示例输入:

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

期望的输出:

[“已发布”、“08/02/1922 说明”、“示例说明时间”、“03:43”]

4

3 回答 3

3

您可以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
于 2013-09-13T08:58:14.617 回答
2

对于给定的示例,只需用“:”(逗号后跟空格)分隔即可完成工作。根据您的数据格式,它可能对您来说已经足够了。

于 2013-09-13T09:09:19.167 回答
0

使用正则表达式找出您的字符串类型,然后在它与您的 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;
于 2013-09-13T09:04:50.433 回答