• ベストアンサー

正規表現で2回以上連続する文字にHITさせたい

パスワードの入力で aa や 11 など 2回以上連続する文字を入力したらHITさせてはじきたいんですが どういう正規表現を書けばよいでしょうか /.{2,}/ としたのですが 結局二文以上あれば何にでもHITしてしまいます /a{2,}|b{2,}|c{2,}・・・/ みたいなのを スマートに書く方法はありませんか

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

/(.)\1+/ これでどうでしょう?

AnonymousCoward
質問者

お礼

すいません 自己解決です \1 は後方参照とかいうのみたいですね 結局 (.)\1 で2文字の連続する文字 が表現でき それの連続(+) ということで二文字以上 になるわけですね 大変勉強になりました ありがとうございました

AnonymousCoward
質問者

補足

素早い回答ありがとうございます ばっちりできました   ところで 解説などお願いできないでしょうか・・・ (.) 任意の文字が \1 1回HIT + 上記がさらに1回以上HIT??? なぜこれで任意の文字の2回以上連続 となるのか分からないです

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 正規表現で何文字目から何文字目までのヒット

    正規表現で何文字目から何文字目までのヒット 正規表現を使い、何文字目から何文字目までをヒットさせたいです。 例えば、下記の英字があります。 abcdefg 6文字目~7文字目をヒットさせたいです。この場合は、「fg」にヒットさせたいです。 先頭から何文字目までヒットというのならわかるのですが、特定の文字数から文字数まで ヒットさせたいという場合、どのような正規表現を組めばいいのでしょうか?

  • 正規表現について教えてください

    正規表現について教えてください。 「①:②:③:④」コロンで区切られた文字列があります。 コロンで区切られた文字列から各コロン間にある文字列を 条件に一致したものを取り出したいのですが 例:①:②:③:④ A000::: :01::: ::AA:: :::BB B001:A1:: B002:99:: C000::ABC01: C000:::BBB01 のように、①②③④の書き方は自由で、最低どこか一つに書かれていて、 ③と④は、両方同時にかかれません。 ここで、③と④のどちらかに入っているのをとりだしたいのですが、 どのように書けばよいでしょうか。 「'.*:.*:[^|:].*:[^|:].*'」としたらダメでした。 「'.*:.*:[^].*:[^].*'」でとりだせたのですが、正しい表現でしょうか。 また、指定したもの、③と④で、 例えば、Aで始まっている、Bで始まっているを 取り出したいのですが上手くいきません。 '.*:.*:[^](A|B).*.*:[^](A|B).*' '.*:.*:[^].*(A|B).*.*:[^].*(A|B).*' '.*:.*:(A|B)[^(A|B)].*:(A|B)[^(A|B)].*' としてみたのですが、表示されません。 お願いします。

  • 正規表現で5文字切抜き

    正規表現で5文字切抜き 正規表現について悩んでいます。秀丸エディタで正規表現を使いたいと思っています。 各行に任意の文字列(スペース、ハイフン、カンマ、アンダーバー、半角全角英数等含む)があります。 先頭行から5文字を残して残りは削除したいと思います。 5文字以下はそのまま残したいと思います。 例) aaaaabb⇒aaaaa ab cdef⇒ab cd a ⇒ a aa⇒aa 「^.{1,5}」とやると、先頭から5文字選択できるのはわかります。 「^.{1,5}(?=.+)」とやっても選択できるのはわかります。 ただし、6文字以上は削除とした場合、どのように正規表現を組み立てればよいでしょうか?

  • 正規表現中の()について

    正規表現中の()について 繰り返し正規表現を行い、マッチ部分を配列に入れる場合の疑問です。 今回、while文を使わずに書いてみようとしています。 #3個以上数字が連続していたら、配列へ入れる。…(1) my @data = ( $str =~ /\d{3,}/g ); #3個以上連続している、同じ文字を取り出して、配列へ入れる。…(2) my @data = ( $str =~ /(.)\1{2,}/g ); 1つめのほうは期待通りに動きました。 が、2つめは正規表現内の()で囲まれた範囲しか、配列に入ってくれませんでした…。 具体的には、$str='AAABBB'なら、 @data='A','B'になってしまいました。(AAA,BBBを配列に入れたい) たぶん、while文と$&を使えば書けそうだとは思いますが、 今回は、この書式で期待通りに動かす方法を知りたいです。 AAA,BBBを配列に入れるにはどのように書けばよいでしょうか? どうか、ご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現で無条件にヒットさせたい

    正規表現で"『』"に囲まれた文字列を無条件にヒットさせたいです。 今は"『(.+?)』"を使用していますが 『』内に途中で改行が入ってしまうと、ヒットしなくなってしまいます。 例 『あいうえお』では、"『"~"』"まで全てヒットしますが 『あいう えお』では、全てヒットしません。 正規表現はあまり詳しくないので・・・ 回答よろしくお願いします。

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

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

  • 正規表現 許可文字列 かつ 指定連続文字列の排除

    わかりにくいタイトルで恐縮です。 初歩的な問題かもしれませんが、もう何日も悩み続けており、ヒントでもいただけると助かります。 たとえば、 正規表現にて 英字のみ(1文字以上) という場合は preg_match("/[a-z]+/i",$string) という風にすればいいと思います。 ここで、英字のみ(1文字以上) しかし、abc という連続文字列があれば該当させない、という場合どういう正規表現を作ればいいのでしょうか? preg_match("/[a-z^(abc)]+/i",$string) みたいなヘンテコなものを作ってみたりしてみたのですが、文法違いなのか、やはり正常には動いてくれません。 ([^a][^b][^c]) なんていうのも違いますし。 狙いは、文字列の最初でも最後でも途中でも、指定文字以外や指定連続文字列がある場合は、エラーを出す、というようなものにしたいのです。 なにかヒントいただければと思います。

    • ベストアンサー
    • PHP
  • 英数字混じり8文字以上の正規表現

    英数字混じり8文字以上の入力指定を行いたいのですが、正規表現の記述方法を教えていただけますか。 よろしくお願いします。

  • 正規表現による文字列の抽出

    $data = 'a b c<a href="x/y/z/hoge.jpg">hoge.jpg </a> …<A HREF = "aa/b/c/hoga.jpg">hoga.jpg</A>…'; 上記の文字列から正規表現で 『x/y/z/hoge.jpg』と『aa/b/c/hoga.jpg』を取り出して配列に格納しようと思っているのですがうまくいきません。 条件は 1.『<a href="』(大文字の場合、またはイコールの前後に半角スペースが含まれる場合もあります。)と『">』に囲まれています。 2.文字列中に何回登場するかは決まっておりません。 3.取り出す文字列の長さはきまっておりません。 以下のように書いてみたのですが…。書き方がわかりません。 どなたかご教授いただけないでしょうか。 よろしくお願いいたします。 while ($data =~ /<a\s[hH][rR][eE][fF].=.\".*?">/g){ push(@arr, $&); } foreach(@arr){print $_,"\n";}

    • ベストアンサー
    • Perl
  • 正規表現で特定の記号を抜かしてヒットさせるには

    javaで正規表現を使用してプログラムしています。 ある条件を入力させて、"."や","の記号を抜かして、 ヒットさせるしたいと思っています。 例えば "あいう"で検索かけた場合、 "あ.い,う"という単語をヒットさせて ヒットした結果を置換したいのですが、できますでしょうか。 正規表現で無くてもよいのですが、現在、多少複雑な正規表現でマッチングしている処理があり、それに簡単に付け加えれば、"."や","をヒットするように出来ないかと思っています。 よろしくお願いします。

    • ベストアンサー
    • Java
このQ&Aのポイント
  • EDC-GUC3-BとMAC OS SONOMAは非対応なのか?ドライバーの更新は可能か?
  • EDC-GUC3-BとMAC OS SONOMAの互換性について知りたい
  • EDC-GUC3-BをMAC OS SONOMAで使用するための方法を教えてください
回答を見る