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

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

Barbara Streisand
发布: 2025-01-08 10:26:41
原创
563 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板