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