cod*_*ast 151
如果分裂字符是,
,.
和;
,我会尝试:
using System.Text.RegularExpressions;
...
string[] parts = Regex.Split(originalString, @"(?<=[.,;])")
Run Code Online (Sandbox Code Playgroud)
(?<=PATTERN)
是积极的后视PATTERN
.它应该在前面文本适合的任何地方匹配,PATTERN
因此在每次出现任何字符后都应该匹配(和分割).
esa*_*sac 24
从BFree的答案开始,我有相同的目标,但我想分割一个类似于原始Split方法的字符数组,并且每个字符串也有多个分割:
public static IEnumerable<string> SplitAndKeep(this string s, char[] delims)
{
int start = 0, index;
while ((index = s.IndexOfAny(delims, start)) != -1)
{
if(index-start > 0)
yield return s.Substring(start, index - start);
yield return s.Substring(index, 1);
start = index + 1;
}
if (start < s.Length)
{
yield return s.Substring(start);
}
}
Run Code Online (Sandbox Code Playgroud)
Con*_*ark 21
以防万一有人想要这个答案......
而不是string[] parts = Regex.Split(originalString, @"(?<=[.,;])")
你可以使用你的分隔符string[] parts = Regex.Split(originalString, @"(?=yourmatch)")
在哪里yourmatch
.
假设原始字符串是
777-猫
777 - 狗
777 - 鼠标
777 - 老鼠
777 - 狼
Regex.Split(originalString, @"(?=777)")
会回来的
777 - 猫
777 - 狗
等等