假设我有字符串
string Song = "The-Sun - Is Red";
我需要将它从' - 'char中拆分,但前提是前后的char是空格。
我不希望它在“太阳报”的冲刺中分裂,而是在“太阳 - 是”冲刺时分裂。
我用来分割的代码是
string[] SongTokens = Song.Split('-');
但是,我认为这显然是在分裂。如果在' - '
之前和之后有空格,我只需要拆分由于
答案 0 :(得分:3)
我需要将它从' - 'char中拆分,但前提是前后的char是空格。
您可以使用这样的非正则表达式解决方案:
string[] SongTokens = Song.Split(new[] {" - "}, StringSplitOptions.RemoveEmptyEntries);
结果:
在MSDN上查看有关String.Split Method (String[], StringSplitOptions)
的更多详细信息。第一个参数是 separator ,它表示一个字符串数组,用于分隔此字符串中的子字符串,一个不包含分隔符的空数组,或null
。
StringSplitOptions.RemoveEmptyEntries
从结果数组中删除所有空元素。您可以使用StringSplitOptions.None
来保留空元素。
如果两端有硬空间或常规空间,可能会出现问题。然后,你宁愿选择这样的正则表达式解决方案:
string[] SongTokens = Regex.Split(Song, @"\p{Zs}+-\p{Zs}+")
.Where(x => !String.IsNullOrWhiteSpace(x))
.ToArray();
\p{Zs}+
模式匹配任何Unicode“水平”空格,一次或多次出现。
答案 1 :(得分:2)
string[] SongTokens = Song.Split(new string[] {" - "}, StringSplitOptions.None);