C#用多个字符拆分字符串

Han*_*abi 1 c# regex

我想拆分这样的字符串:

"---你好---你好-------你好---再见"

进入这样的数组:

"你好" ; "你好你好" ; "再见"

我用这个命令试了一下:

test.Split(new string[] {"---"}, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)

但这不起作用,它将"-------"分成3个"---- hello".

编辑:

我无法修改文本,它是一个输入,我不知道它在我必须修改它之前的样子.

另一个例子是:

---例子---

---------示例文本--------

---例子2 ---

它应该只拆分带有3个连字符的连字符而不是带有更多连字符的连字符.

Geo*_*der 6

您可以使用正则表达式拆分.正则表达式使用负向前瞻(?!-)只能-完全匹配三个.另请参阅在C#中使用Regex获取单词的完全匹配.

string sentence = "---hello--- hello ------- hello --- bye";
var result = Regex.Split(sentence, @"(?<!-)---(?!-)");
foreach (string value in result) {
   Console.WriteLine(value.Trim());
}
Run Code Online (Sandbox Code Playgroud)

.net小提琴