升级.NET框架后,在RegEx.Split中更改了行为

时间:2013-05-12 16:15:07

标签: regex split

客户升级了他们的系统,他们开始报告输出中的错误。显然,之前拆分的字符串会产生以下结果。

"a-b-c"   ->   {"a", "b", "c"}

然而,现在他们得到了这个。

"a-b-c"   ->   {"a", "-", "b", "-", "c"}

我已经检查了intellisense,但据我所知,没有选项可以打开/关闭包含分隔符。如何轻松解决这个问题?

我最好的建议是使用正则表达式进行拆分,然后使用正则表达式的匹配条件进行链接。看起来多余,但是......

目前的版本是4.5。之前,他们有一些 ooold ,比如2.0或者什么。

1 个答案:

答案 0 :(得分:3)

.NET 4.5的行为是正确的。

捕获组的内容将添加到拆分结果中。因此,Regex.Split("a-b-c", "(-)");会将破折号添加到数组中。

改为使用Regex.Split("a-b-c", "-");