我有这样的字符串
| 7 | 2 |39,93 |
我需要将其拆分为一个数组,其中第一个元素是"7"
,第二个是"2"
,第三个是"39,93"
我想出了以下解决方案
var line = "| 7 | 2 |39,93 |";
line = line.Remove(0, 1);
string[] arr = Regex.Replace(line, @"\s+", "").Trim().Split('|');
我想知道是否有更好的方法来做到这一点。
答案 0 :(得分:8)
你不需要正则表达式,你可以使用String.Split
和一些LINQ这样做:
var line = "| 7 | 2 |39,93 |";
var array = line.Split(new[] { '|'}, StringSplitOptions.RemoveEmptyEntries)
.Select(s => s.Trim()).ToArray();
答案 1 :(得分:1)
是
var output =
line.Split("|") // split on the pipes
.Select(x => x.Trim()) // remove excess whitespace from each item
.Where(x => !string.IsNullOrEmpty(x)) // remove any empty items
.ToArray(); // convert to array
Regexes在这里并不是很有帮助。你可以用正则表达式做它,但它可能更难阅读。但是它有可能更有效率。你必须测试它。
我预计在开始和结束时出现的空项目需要被丢弃,因为那些初始和终端管道,但如果中间有空元素,你想让你保持原状调整那部分。