当条件为真时,c#在字符上拆分字符串

时间:2013-09-13 08:52:09

标签: c# .net visual-studio-2010

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

理想情况下,当搜索字符两边的字符不是数字时,我只想分割字符串吗?


修改

示例输入:

  

发布日期:08/02/1922描述:示例说明时间:03:43

期望的输出:

  

[“Issued”,“08/02/1922 Description”,“示例说明时间”,“   3" 点43分]

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

答案 2 :(得分: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;