[英]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.