首頁 >後端開發 >C++ >如何在 C# 中拆分字串同時保留分隔符號?

如何在 C# 中拆分字串同時保留分隔符號?

Barbara Streisand
Barbara Streisand原創
2025-01-08 10:26:41553瀏覽

How Can I Split a String in C# While Keeping the Delimiters?

在 C# 中拆分字串時保留分隔符號

通常,您需要使用特定分隔符號分割字串,但您也希望將這些分隔符號保留在結果陣列中。 本文示範了一種在 C# 中使用正規表示式的可靠方法。

解:正規表示式

C# 的 Regex.Split 方法與巧妙設計的正規表示式結合,提供了解決方案。關鍵是使用積極的後向斷言。 正向回顧可確保目前位置之前存在模式 ,而 則不會在配對本身中包含該模式。

正規表示式模式:

此模式尋找分隔符號(本例為逗號、句點和分號),同時確保它們保留在輸出中:

<code class="language-csharp">(?<=(?:[,.;]))</code>
  • (?<=...):這是一個正面的回顧斷言。
  • (?:[,.;]):這是一個與逗號、句點或分號相符的非捕獲組。

程式碼範例:

我們用程式碼來說明:

<code class="language-csharp">using System.Text.RegularExpressions;

// ... other code ...

string originalString = "This,is,a,comma,separated,string.";

string[] parts = Regex.Split(originalString, @"(?<=(?:[,.;]))");

// parts array will contain:
// ["This",",","is",",","a",",","comma",",","separated",",","string","."] </code>

正規表示式在 緊接在 每個分隔符號之後的點分割字串。 由於分隔符號本身不包含在匹配中,因此它會保留在結果數組中。

輸出:

輸出表示原始字串已拆分,並且每個分隔符號都作為單獨的元素包含在結果數組中。 正向lookbehind確保分隔符號是分割的一部分,而不會被吸收到字串段。

以上是如何在 C# 中拆分字串同時保留分隔符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn