0

少し変わったように見えるかもしれませんが、ユーザー入力ボックスから必要なアイテムは1つだけである可能性が非常に高いです。動作する関数を作成するために入力された文字列の違いを判別するために、;でregex.splitを使用しています。

string[] customlister = Regex.Split(Regex.Replace(exttypes, @"s", ""), ";");
foreach(string c in customlister){
  lister.Add(c);
}

exttypesは、ファイルの拡張子用です。例:

。EXE; 。バット; .css

すべてセミコロンで区切られています。

リストに項目が1つしかない場合、セミコロンで終わっていても、リスターリストが情報を取得しないという問題が発生します。

私が見逃した明らかな何かがありますか?

回答:regex.replace()にsの代わりに\sを追加しました

追加した

exttypes = Settings.Default.customext;

4

1 に答える 1

0

Regex.Replace(exttypes, @"s", "")呼び出しの正規表現パターンは@"\s"、ではなく、である必要があると思います@"s"。前者は空白を削除します。後者はすべての's'文字を削除し、(たとえば)".css"拡張子をに変換します".c"

次のMSDNドキュメントからRegex.Split

入力文字列にパターンが見つからない場合、戻り値には、値が元の入力文字列である要素が1つ含まれます。

したがって、エラーはおそらく、入力を提供する方法または結果を解釈する方法にあります。Split呼び出しは正しいです。

于 2012-06-03T10:08:14.467 に答える