我想把一根线分成两根,
我的字符串看起来像: HAMAN*3白空间*409991
我想要两个字符串,第一个用'HAMAN‘,第二个应该包含'409991’
问题:在实现以下代码之后,我的第二个字符串有'09991'而不是'409991':
string str = "HAMAN 409991 ";
string[] result = Regex.Split(str, @"\s4");
foreach (var item in result)
{
MessageBox.Show(item.ToString());
}带问题的当前解决方案:
当我发现空格后面跟着数字4时,分割我原来的字符串。第二个字符串中缺少字符'4‘。
首选解决方案:
当我找到3个空格,后面跟着数字4,并在我的第二个字符串中提到'4‘。
发布于 2013-11-15 10:52:56
发布于 2013-11-15 10:53:58
积极展望是你的朋友:
Regex.Split(str, @"\s+(?=4)");发布于 2013-11-15 10:54:52
或者你不能使用Regex:
var str = "HAMAN 409991 ";
var result = str.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);如果您需要从SPACESPACESPACE4开始的话,可以选择
var str = new[] {
"HAMAN 409991 ",
"HAMAN 409991",
"HAMAN 509991"
};
foreach (var s in str)
{
var result = s.Trim()
.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries)
.Select(a => a.Trim())
.ToList();
if (result.Count != 2 || !result[1].StartsWith("4"))
continue;
Console.WriteLine("{0}, {1}", result[0], result[1]);
}https://stackoverflow.com/questions/19999283
复制相似问题