首页 >后端开发 >C++ >如何在 C# 中拆分字符串同时保留分隔符?

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

Barbara Streisand
Barbara Streisand原创
2025-01-08 10:26:41567浏览

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