2013-05-12 4 views
6

クライアントがシステムをアップグレードし、出力にバグを報告し始めました。どうやら、前に分割された文字列は次のようになりました。.NET Frameworkのアップグレード後にRegEx.Splitの動作が変更された

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

ここで、これが表示されます。

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

私はintellisenseをチェックしましたが、わかるようにセパレータの挿入をオン/オフするオプションはありません。どのようにこれは簡単にこれに取り組むことができますか?

私が頭の上から外した最良の提案は、正規表現を使用して分割し、正規表現の一致条件でリンクを使用するところです。しかし、冗長だと思われる...

現在のバージョンは4.5です。以前は、彼らは何かを持っていたoooldのような2.0または何か。

+0

コードを表示できますか? –

+0

Regex.Split( "a-b-c"、 " - "); –

+0

非常に奇妙です。その結果は 'Regex.Split(" a-b-c "、"( - ) ");'には期待されますが、あなたが投稿したものではありません。 –

答えて

3

.NET 4.5の動作は正しいです。

キャプチャグループの内容が分割結果に追加されます。したがって、Regex.Split("a-b-c", "(-)");は、ダッシュを配列に追加します。

代わりにRegex.Split("a-b-c", "-");を使用してください。

+0

ああ、それは正しい、動作、大丈夫です。それは前とはちょっと違う。私はちょうど[このリンク](http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx)(日付を議論する中央を参照)を発見しました。どうやら、私のクライアントは.NETの以前のバージョンのooooooooold **を実行していました。 –

関連する問題