• ベストアンサー

正規表現での入力文字数と連続文字チェック

教えてください。 正規表現を用いて、 最低入力桁数 使用文字 同一連続文字 の制限を掛けたいと思っています。 以下で、6桁以上で[]内で文字の制限も掛けられていると思っているのですが、 ^(?=.{6,})[a-zA-Z0-9]+$ 上記に、 111111やAAAAAA といった、連続文字を不可にするのを組み込めません。 過去の質問から以下を認めないといった記述でいけるのではと思っているのですが。 (.)\1{5,} 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • siffon9
  • ベストアンサー率64% (136/211)
回答No.2

申し訳ありません、最後の2文字が欠けましたので訂正します。 ^(?!(.)\1{5,})(?=.{6,})[a-zA-Z0-9]+$

OKWave159
質問者

お礼

ご回答ありがとうございます。 解決しました。 ?!ですね。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

1回で全部やらないとだめなのでしょうか?

OKWave159
質問者

お礼

分割でも問題ありませんでした。 ありがとうございました。

  • siffon9
  • ベストアンサー率64% (136/211)
回答No.1

以下でどうでしょうか? ^(?!(.)\1{5,})(?=.{6,})[a-zA-Z0-9]

関連するQ&A

  • 正規表現で入力チェックするには。

    正規表現を使用して入力チェックをしようと考えていますが特殊記号文字がうまくいきません。 [0-9a-zA-Z]で英数字はチェックする事ができたんで下記の特殊文字を指定するとエラーになってしまい困っています。 「!"#$%&'()=~|`{+*}<>?_-^\@[;:],./」 ロジックは以下のように記述しています。 Pattern p = Pattern.compile("[0-9a-zA-Z!\"#$%&'()=~|`{+*}<>?_-^\\@[;:],./]"); Matcher m = p.matcher("文字列"); if(m.matches() == true){   System.out.println("1"); } else{   System.out.println("2"); } ※「\」と「"」はエスケープしています。 下記のエラーメッセージが表示されてなんとなくですが正規表現でエラーになっているのはわかるんですが・・・ Illegal character range near index 32 [0-9a-zA-Z!"#$%&'()=~|`{+*}<>?_-^\@[;:],./]                       ^ 申し訳ありませんがアドバイスいただけませんでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Java
  • 正規表現

    strutsのバリデータでmaskのみで 以下の条件を正規表現を使ってあらわしたいのですが 使用可能文字  半角英数字 @ - _ . 条件  @ _ - . 同一文字の連続使用は不可。  先頭と最期は半角英数字のみ。  全部の文字数は3文字以上30文字以内。 aaa@aaa OK aaa@_-a OK aaa@@_a NG a@@@a NG @マークの連続使用不可は↓でできたのですが、 ^[a-zA-Z0-9]([a-zA-Z0-9]+@?){1,30}[a-zA-Z0-9]$ _ . - の条件を加えるとうまくいきいません。。 よい方法がございましたらご教授ください!!

  • 正規表現

    数字と大文字、小文字のアルファベットは入力OK。 記号も入力OK。でも、記号の中でも「”」、「.」は ダメ。しかも、10桁くらい入力できるようにする。 を表す正規表現は [a-zA-Z0-9&&[\"\.]]* と思ったのですが、 正しく表す正規表現はどの様なものになるのでしょうか? お願いします。

    • ベストアンサー
    • Java
  • 正規表現についてお願いします。

    お世話になります。 javascriptの正規表現で仮に任意の桁数の文字列があり、その数桁目から数桁目の間のみを拾いたい場合にどのように記述すればよろしいでしょうか。 http://okwave.jp/qa/q6840301.html すいません。引用いたしました。 こちらの内容と同じことをJavaScriptで実現したいです。 よろしくおねがいします。

  • メールアドレスの正規表現

    メールアドレスの正規表現 正規表現の勉強をしています。下記のURLのメールアドレスの正規表現の一部が理解できません。 http://hodade.adam.ne.jp/seiki/page.php?s_mail ^[a-zA-Z0-9!$&*.=^`|~#%'+\/?_{}-]+@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ この中の「[a-zA-Z]{2,4}$」の部分がわかりません。 行末が英文字2以上4以下というのは何を表しているのでしょうか? なぜ2以上4以下になるかが理解できません・・・ 宜しくお願いします!!

  • 正規表現 英数字を1つ以上含む文字列

    ASP.NET(VB)での入力チェックのために、 半角英数字「0~9」「a~z」「A~Z」と、ハイフン「-」からなる文字列 (ただし、半角英数字「0~9」「a~z」「A~Z」はそれぞれ少なくとも1個ずつ含む) の正規表現での表し方が知りたいです。  How To: ASP.NET への入力を制約するために正規表現を使用する方法  http://www.microsoft.com/japan/msdn/enterprise/pag/securityguidance/paght000001.aspx  (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$  8から10文字で、最低1文字の数字と1文字の英字を使用し、特殊文字を使用してはいけません。 上記を参考に、 (?!^[0-9]*$)(?!^[a-z]*$)(?!^[A-Z]*$)^([a-zA-Z0-9])$ こんな感じかなぁと試してみたのですが、ダメでした。 そもそも「!」の意味が分かりません。否定でしょうか??

  • 正規表現の書き方について

    $a=aaaaaaあああ1111いいい2222; 上記の$aを <br>aaaaa<br>aあああ<br>1111いいい<br>22222<br> このようにしたいのですが、 条件1:半角英数字の頭に<br> 条件2:半角英数字が5つ続いたら<br> としたいのですが、正規表現の記述方法で悩んでいます。 $b=preg_match([a-zA-Z0-9],$a)がに該当したら これで受け取ったものをpreg_replace<br>で挟む?のでしょうか。 そもそも条件は1つ以上指定できないのかもしれませんが・・・。 何かご存知の方いましたらご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 正規表現で

    正規表現で 8文字以上、15文字以内で1文字以上の英語(大文字小文字どちらか一方で可)と数字が含まれている表現を考えているのですが、思いつきません。 [0-9a-zA-Z]{8,15} だと全て数字・英語でも通ってしまうので、困っています。 どなたか詳しい方、ご教授ください。

  • 【正規表現】HTML5のpattern属性について

    HTML5のpattern属性で半角英数記号を指定するにはどう記述したら良いですか? HTMLやCSSの学習をしています。 正規表現についてはほぼ分かりません。 (1)ユーザーIDやパスワード入力フォーム半角英数記号のみの入力を処理する場合、type属性は”text”でいいのでしょうか? (2)pattern 属性に使う正規表現はほぼ理解できません。自分なりに調べてみたのですが、以下のような記述だと_アンダーバーや@マークなどの記号は識別できないのではないかと言われました。 また入力文字数制限は正規表現でも出来るようですが、以下のように自分でもわかるminlength, maxlengthで記述しようと思っていまがこれで大丈夫なのでしょうか? サンプルとして以下のように記述してみました。 type属性や、「半角英数記号」の入力文字など正しい書き方を教えてください。 よろしくお願いします。 <input type="text" name="username" pattern="^[0-9A-Za-z]+$" minlength="4" maxlength="50">

  • 正規表現

    正規表現で 数値と半角記号(!#$%()~|-^@[;],./`{+*}_)が入っているというものを表現したいのですが、、、 下記のような正規表現をすると、エラーになってしまいます。何かよい方法はありませんか? ^[a-zA-Z0-9\-_!#$%()~|-^@[;],./`{+*}_]*$ 又、携帯電話のチェックをしたいのですが、 1文字以上の文字列があってというような処理にしたいのですが、何かよい方法はないでしょうか? ereg( "@docomo\.ne\.jp$", $email )

    • ベストアンサー
    • PHP

専門家に質問してみよう