我希望使用String.split方法在':'字符上拆分字符串。然而,问题是分裂在诸如时代之类的事情上也存在分歧。我不希望这种情况发生。无论如何,我可以指定一个谓词,只有在为真时,才能拆分字符串。
理想情况下,当搜索字符两边的字符不是数字时,我只想分割字符串吗?
修改
示例输入:
发布日期:08/02/1922描述:示例说明时间:03:43
期望的输出:
[“Issued”,“08/02/1922 Description”,“示例说明时间”,“ 3" 点43分]
答案 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;