繁体   English   中英

分割字符串并将分隔符字符串保留在C#中

[英]Split a string and keep separator string in c#

如何基于字符串拆分字符串,并使结果数组也包含分隔符?

例:

如果我的字符串= "Hello how are you.Are you fine?.How old are you?"

我想基于字符串“ you”进行拆分,然后得到的结果是一个包含项的数组{ "Hello how are", "you", ".Are", "you", "fine?.How old are", "you", "?" } { "Hello how are", "you", ".Are", "you", "fine?.How old are", "you", "?" }

我如何获得这样的结果? 我尝试了String.Split

string[] substrings = Regex.Split(source, stringSeparators);

但是两者都给出了结果数组,却没有出现you

另外,我只想对整个单词you进行拆分。 如果you是其他字眼的一部分,我不想分裂。 例如,在Hello you are so young的情况下,我希望结果为{ "Hello", "you", "so young" } 我不想将young拆分为{ "you", "ng" }

您可以将分隔符放入匹配组,然后它将成为结果数组的一部分:

string[] substrings = System.Text.RegularExpressions.Regex.Split(source, "(you)");

输出为:

"Hello how are ", 
"you" ,
".Are ",
"you",
" fine?.How old are ",
"you",
"?"

有关您的其他问题的更新:在关键字周围使用单词边界:

Split(source, "\\b(you)\\b");
\b(you)\b

以此拆分,您将获得结果。

正则表达式替换:

(you)|\\1|

现在您将拥有一个像这样的字符串:

Hello how are |you|.Are |you| fine?.How old are |you|?

现在您可以简单地拆分|

希望能有所帮助

string []子字符串= System.Text.RegularExpressions.Regex.Split(source,“ \\ s *您\\ s *”);

这应该工作。 以下是输出。

“你好”

“。是”

“好吗?几岁了”

“?”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM