- PR -

正規表現について

1
投稿者投稿内容
ちょう初心者
会議室デビュー日: 2007/03/19
投稿数: 7
投稿日時: 2007-03-19 20:07
いつも参考にさせてもらってます。

ASP.NETのVBで開発をしているのですが正規表現で少々質問です。

コードをカンマで区切ってDBに登録するのですが
その前に検証コントロールでチェックを行いたいです。

コードが複数ある場合(100桁までOK、コードで言うと16個可能)
11111,22222,33333,44444,55555

コードが1件の場合
11111

上記のような途中に「,」があるフォーマットなのですが
下記のように書いてみたのですがうまくいきません。
^\\d{0,5},\\d{0,5},\\d{0,5}$

数字5桁が1つの場合は「,」はいらないので上のではいけないのでしょうか?
100桁(16個)までというのも入っていないのでいれないとですが。。

もう一つあるのですが
過去ログを見てラジオボタンの検証コントロールの必須チェックはあったのですが
チェックボックスの必須チェックは検証コントロールでできるのでしょうか?

初心者で申し訳ないのですが
どうぞご教授のほどよろしくお願いします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-03-19 20:48
引用:

ちょう初心者さんの書き込み (2007-03-19 20:07) より:
^\d{0,5},\d{0,5},\d{0,5}$


これじゃ、数字の塊が3つの時しかマッチしませんよね。
^\d{0,5}(,\d{0,5}){0,15}$
こうかな……、検証してませんが。
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2007-03-19 20:51
引用:

ちょう初心者さんの書き込み (2007-03-19 20:07) より:
コードが複数ある場合(100桁までOK、コードで言うと16個可能)
11111,22222,33333,44444,55555

コードが1件の場合
11111

上記のような途中に「,」があるフォーマットなのですが

下記のように書いてみたのですがうまくいきません。
^\d{0,5},\d{0,5},\d{0,5}$



コード:
^\d{0,5}(,\d{0,5}){0,15}$



これでどうでしょうか?1項目は必須、MAX16項目までとして書いてます。
ちなみに提示のパターンでは3項目固定ですね。


引用:

過去ログを見てラジオボタンの検証コントロールの必須チェックはあったのですが
チェックボックスの必須チェックは検証コントロールでできるのでしょうか?



チェックボックスの必須チェックって?
チェックされているか、されていないかのどちらかしかないから、
どちらの状態も入力されている状態としか判断できませんけど。

別の項目の状態によって、チェックがついていること、
みたいな縛りをしたい、ということなら、その辺のやりたいことも含めて、
別途、質問された方がよいかと思います。
#もし、この質問にチェックボックスについての回答がついてしまうと
#ちょう初心者さんのように過去ログを調べる方が困ることになるかもしれません。

#チェックボックスで検索→タイトル:「正規表現について」→関係なさそうだな
ちょう初心者
会議室デビュー日: 2007/03/19
投稿数: 7
投稿日時: 2007-03-19 23:03
ご返答ありがとうございました。

書き忘れてましたが1項目は必須じゃないです。
空白の場合もあるとこのことでした。

1項目必須でないとなると最初のを取って

\\d{0,5}(,\\d{0,5}){0,15}$

でいいのでしょうか。

チェックボックスのほうは
もう少し調べてわからない場合は
質問したいと思います。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-03-20 00:41
引用:
書き忘れてましたが1項目は必須じゃないです。
空白の場合もあるとこのことでした。

1項目必須でないとなると最初のを取って

\\d{0,5}(,\\d{0,5}){0,15}$

でいいのでしょうか。

よねKENさんが提示してくださった正規表現でも空白は許可されていますよ。
「最初の」って「^」のことですよね?(これが入力文字列の先頭にマッチすることは理解してますか?)
RegularExpressionValidatorではこれがなくてもあるものとみなされるようです。$(末尾)も同様です。

ところで「コード」というのは5桁以下なら(空白でも)OKなのでしょうか?
この正規表現だと「10,,,13333,65,,0」みたいなのも許可されますよ。
ちょう初心者
会議室デビュー日: 2007/03/19
投稿数: 7
投稿日時: 2007-03-20 09:30
ご教授ありがとうございます。

「^」が先頭マッチだと言うのはわかっています。
少し簡単に考えすぎたのかもしれません。

{0,5}と言うので0桁から5桁までOKと言うことで空白もOKとなるのですね。
コードは5桁固定ですので5桁以下のコードが入ると困ります。

入力フィールドには5桁のコードが複数はいる感じで
複数の場合はカンマで区切るとあり
必須入力ではないためコードなしの空白の場合もありえると言うことです。
ちょう初心者
会議室デビュー日: 2007/03/19
投稿数: 7
投稿日時: 2007-03-20 09:59
みなさんのを参考にやってみました。
コード5桁固定、空白ありだとで

^\\d{5}(,\\d{5}){0,15}$

この方法でうまく動作しました。

みなさんご教授のほうありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)