簡體   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