当前位置:  开发笔记 > 编程语言 > 正文

String.Split可以区分单个实例和多个char实例吗?

如何解决《String.Split可以区分单个实例和多个char实例吗?》经验,为你挑选了1个好方法。

我正在使用C#String.Split.

我想拆分'#',但不是'##','###','####'等等.我只想拆分角色的单个实例,而不是多个实例.

我正在使用markdown文件做一些工作.这是我正在使用的降价示例.我想拆分第1,2和3部分,但不拆分子部分.默认情况下,它会拆分所有'#'实例,所以我在数组中得到14个字符串.

#Section 1
This is a sample section, it has two sub-sections

##SubSection 1.1
This is sub-section 1.1

##SubSection 1.2
This is sub-section 1.2

#Section 2
This is a sample section, it has three sub-sections

##SubSection 2.1
This is sub-section 2.1

##SubSection 2.2
This is sub-section 2.2

##SubSection 2.3
This is sub-section 2.3

#Section 3
This is a section without any sub sections

Douglas.. 7

你可以使用Regex.Split:

 var parts = Regex.Split(source, @"(?=^#[^#])", RegexOptions.Multiline);

哪里:

(?=... )匹配括号内的任何内容作为前瞻(包括结果,而不是将其作为分隔符丢弃)

^with RegexOptions.Multiline代表一个行首锚

#[^#] 匹配哈希后跟非哈希字符

Split语义一致,返回数组中的第一个字符串将是第一个节头之前出现的子字符串.对于您的示例,这将是一个空字符串,您可能想要丢弃.



1> Douglas..:

你可以使用Regex.Split:

 var parts = Regex.Split(source, @"(?=^#[^#])", RegexOptions.Multiline);

哪里:

(?=... )匹配括号内的任何内容作为前瞻(包括结果,而不是将其作为分隔符丢弃)

^with RegexOptions.Multiline代表一个行首锚

#[^#] 匹配哈希后跟非哈希字符

Split语义一致,返回数组中的第一个字符串将是第一个节头之前出现的子字符串.对于您的示例,这将是一个空字符串,您可能想要丢弃.


这不会分裂在每个`##`的最后一个`#`上吗?
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有