我正在用三个不同的字符分割字符串,但我希望输出包含我分割的字符.有没有简单的方法来做到这一点?
如果分裂字符是,
,.
和;
,我会尝试:
using System.Text.RegularExpressions; ... string[] parts = Regex.Split(originalString, @"(?<=[.,;])")
(?<=PATTERN)
是积极的后视PATTERN
.它应该在前面文本适合的任何地方匹配,PATTERN
因此在每次出现任何字符后都应该匹配(和分割).
从BFree的答案开始,我有相同的目标,但我想分割一个类似于原始Split方法的字符数组,并且每个字符串也有多个分割:
public static IEnumerableSplitAndKeep(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); } }
以防万一有人想要这个答案......
而不是string[] parts = Regex.Split(originalString, @"(?<=[.,;])")
你可以使用你的分隔符string[] parts = Regex.Split(originalString, @"(?=yourmatch)")
在哪里yourmatch
.
假设原始字符串是
777-猫
777 - 狗
777 - 鼠标
777 - 老鼠
777 - 狼
Regex.Split(originalString, @"(?=777)")
会回来的
777 - 猫
777 - 狗
等等