dポイントプレゼントキャンペーン実施中!

ある文字列を調べ、
その中で"同じ文字が10連続以上続いている部分"があるかどうかを検出したいのですが、
プログラム慣れしていないもので相当梃子摺っています。
どのように記述すれば良いのでしょうか。

A 回答 (2件)

 正規表現を使います。


 「ある文字列が10個以上並んでいればヒット」という正規表現を書き、それがヒットしたかどうかで検査を行います。
 正規表現では、() で囲まれた範囲を1つのブロックとして扱います。
 また、連続個数を指定するのは {m,n} です。

 答えはこちら。(できれば見ないで)

 if ( $data =~ /(ある文字列){10,}/ ) {
  # 10個連続している
 } else {
  # してない
 }
    • good
    • 0

正規表現を使います。


・正規表現内で"()"を使うと、その部分を"\1"で参照できる
・{m,}を使うと直前の文字がm回以上繰り返す、ということを表現できる
ということを踏まえ、(.)で任意の1文字を取得し、続けて同じ文字が9回以上出現するという正規表現を書きます。

if($line =~ /(.)\1{9,}/){
  # 10回以上連続している
}
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!