文字列にハイフンが 0 回または 1 回含まれているかどうかを確認する正規表現を作成しようとしています。
したがって、次の文字列がOKとして返されます。
1-5
1,3-5
1,3
以下は間違っているでしょう。
1-3-5
私は次のことを試しましたが、1-3-5 で問題ありません。
([^-]?-){0,1}[^-]
コレクションに文字列がある場合は、LINQ の 1 行でこれを行うことができます。ハイフンが 2 つ未満の文字列のリストを返します。
var okStrings = allStrings.Where(s => s.Count(h => h == '-') < 2).ToList();
文字列のリストをフォーマットした方法から判断すると、コンマは一貫した区切り文字ではないため、コンマで分割できないと思います。可能であれば、メソッドを使用して各文字列を取得し、上記の変数をその配列にString.Split
置き換えることができます。allStrings
式をテストしたところ、希望する結果が得られたようです。1-3-5 を {1-3} と {-5} に分割します。