【发布时间】:2018-02-23 23:57:00
【问题描述】:
我试图在一个被括号包围的字符串中保留一个括号。
有问题的字符串是:test (blue,(hmmm) derp)
所需的数组输出为:test 和 (blue,(hmmm) derp)。
当前输出为:(blue,、(hmm)和derp)。
我当前的代码是this:
var input = Regex
.Split(line, @"(\([^()]*\))")
.Where(s => !string.IsNullOrEmpty(s))
.ToList();
如何提取外括号内的文本(保留它们)并将内括号作为一个字符串保留在数组中?
编辑:
为了澄清我的问题,我想忽略内括号,只拆分外括号。
herpdediderp (orange,(hmm)) some other crap (red,hmm)
应该变成:
herpdediderp、orange,(hmm)、some other crap 和 red,hmm。
该代码适用于除双括号之外的所有内容:(orange,(hmm)) 到 orange,(hmm)。
【问题讨论】:
-
没有外括号怎么办?
-
@NetMage 然后它什么也不做。
-
我的意思是,有没有可能输入的字符串不会被括号括起来,如果发生这种情况,应该如何处理?
-
@NetMage 如果输入字符串本身没有任何括号,它将跳过它。字符串不会被括号包围,而是我想在字符串中捕获括号。如果字符串被括号包围,那么它会通过括号,但只有当第一个用逗号与其余单词隔开的单词是颜色时才会通过。
-
你好像又在自相矛盾了。您特别不想捕获字符串中的括号,否则您将拥有
(orange, (hmm))。你的两个例子也是矛盾的——你怎么得到blue、(hmm) derp和orange,(hmm)、red,hmmm?但这开始看起来像是一个 XY 问题——你真正想要完成什么?