2017-08-06 22 views
3

テキストボックスで許可したい書式は、カンマ区切りのリストとカンマ区切りのリストの間の改行の後にカンマ区切りのリストです。ここで私は、ユーザから何をしたいの例です。改行を含むカンマ区切りリストの正規表現

1,2,3 
1,2,4 
1,2,5 
1,2,6 

は、これまでのところ、私はこのValidationExpressionを使用して、ユーザーが限られている:

^([1-9][0-9]*[]*[ ]*,[ ]*)*[1-9][0-9]*$ 

は、しかし、その式で、ユーザーが1つだけ入力することができますコンマで区切られた数字の行。

改行を受け入れることで複数の行を受け入れることができますか?

+1

はあなたです入力行列は常に3x3ですか、またはこれは変わりますか?それは対称でなければならないのでしょうか? – cansik

+0

必ずしも3x3であるとは限りません。それらは対称的でもあります。 – justinpees

+1

正規表現は問題になると思います。なぜなら、正規表現は数えきれていないからです(すでに数えられている数を数えることはできません)。 – cansik

答えて

3

入力が正しい形式であるかどうかを確認することができます。私はグループを使用することをお勧めしますし、それらを繰り返すだろう:

((\d+,)+\d+\n?)+ 

しかし行列はあなたが何か他の正規表現を使用する必要が対称であるかどうかを確認します。

は、ここでそれをチェックアウト:https://regex101.com/r/GqtOuQ/2/

をあなたはもう少しユーザーフレンドリーになりたい場合は、ユーザーが数とコンマの間で追加したいと同じくらい横のスペースを許可することが可能です。これは正規表現グループ\hで行うことができ、\nを除くすべての空白を許可します。

正規表現コードは、今少し厄介になります。

((\h*\d+\h*,\h*)+\h*\d+\h*\n?\h*)+ 

チェックここでは、このアウト:ここhttps://regex101.com/r/GqtOuQ/3

が.NETで動作するはずバージョンです:

(([ \t]*\d+[ \t]*,[ \t]*)+[ \t]*\d+[ \t]*\n?[ \t]*)+ 
+0

これはうまくいくようですが、ユーザーの入力がちょっと面倒な場合に、カンマの前後に1つのスペースを入れる方法はありますか? – justinpees

+1

個人的には、ユーザーが望むだけ多くのスペース/タブを許可することをお勧めします。あなたのソフトウェアは後でそれをトリミングすることができます。更新された回答を確認してください。 – cansik

+0

あなたの更新された回答が気に入っていますが、変更を加えた後は私のWebフォームがブラウザで開かれません。 URLにアクセスしようとすると、次のエラーが表示されます。 探しているリソースが削除されているか、名前が変更されているか、一時的に利用できません。私はあなたの最初の表現でこの問題を抱えていませんでした。 – justinpees

関連する問題