【发布时间】:2019-04-04 22:36:20
【问题描述】:
是否可以使用 Regex.Split() 通过分隔符分割字符串,但前提是分隔符后面没有某些字符。 例如,我想用“:”分隔符分割一个字符串,但忽略“:=”分隔符。这段代码:
string input = "One : Two:Three:=Four";
string pattern = @":";
Regex reg = new Regex(pattern);
var parts = reg.Split(input):
返回 4 个部分:“一”、“二”、“三”和“=四”。
我尝试像这样修改示例:
string input = "One : Two:Three:=Four";
string pattern = @":[^=]";
Regex reg = new Regex(pattern);
var parts = reg.Split(input):
现在我得到 3 个部分:“一”、“二”和“三:=四”。必须在模式中进行哪些更改才能正确地开始第三部分,例如:“Three:=Four”。
如何使用附加的开始/结束分隔符定义扩展上面的示例,该定义也禁用由定义的分隔符进行的拆分。例如:
string input = "One : Two:Three:=Four {Comment:String:="This is a comment";AddditionalInfo:String:="This is some additional info";}";
结果应包含以下 3 个部分:“One”、“Two”和“Three:=Four {Comment:String:="This is ...}”。
我的意思是如果在“{”和“}”分隔符之间存在“:”分隔符,则应该忽略它。
【问题讨论】:
-
where delimiter followed by some character你知道space太过分了。 -
@RickyTad 请检查我的答案和演示。
-
查看我编辑的答案。请注意,对问题进行重大更改会使之前的正确答案不正确,因此,如果您的问题中有错误,请编辑问题,不要更改或扩展它,您可以为此提出另一个问题。