- ベストアンサー
文字連続の検出手段
ある文字列を調べ、 その中で"同じ文字が10連続以上続いている部分"があるかどうかを検出したいのですが、 プログラム慣れしていないもので相当梃子摺っています。 どのように記述すれば良いのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#25358
回答No.1
正規表現を使います。 「ある文字列が10個以上並んでいればヒット」という正規表現を書き、それがヒットしたかどうかで検査を行います。 正規表現では、() で囲まれた範囲を1つのブロックとして扱います。 また、連続個数を指定するのは {m,n} です。 答えはこちら。(できれば見ないで) if ( $data =~ /(ある文字列){10,}/ ) { # 10個連続している } else { # してない }
その他の回答 (1)
- bgbg
- ベストアンサー率53% (94/175)
回答No.2
正規表現を使います。 ・正規表現内で"()"を使うと、その部分を"\1"で参照できる ・{m,}を使うと直前の文字がm回以上繰り返す、ということを表現できる ということを踏まえ、(.)で任意の1文字を取得し、続けて同じ文字が9回以上出現するという正規表現を書きます。 if($line =~ /(.)\1{9,}/){ # 10回以上連続している }