我正在使用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
语义一致,返回数组中的第一个字符串将是第一个节头之前出现的子字符串.对于您的示例,这将是一个空字符串,您可能想要丢弃.
你可以使用Regex.Split
:
var parts = Regex.Split(source, @"(?=^#[^#])", RegexOptions.Multiline);
哪里:
(?=
... )
匹配括号内的任何内容作为前瞻(包括结果,而不是将其作为分隔符丢弃)
^
with RegexOptions.Multiline
代表一个行首锚
#[^#]
匹配哈希后跟非哈希字符
与Split
语义一致,返回数组中的第一个字符串将是第一个节头之前出现的子字符串.对于您的示例,这将是一个空字符串,您可能想要丢弃.