「同じ文字が2個並んだ文字列」の正規表現

Pocket

「book」の「oo」のように文字の繰り返しを見付ける正規表現について調べました。

JavaScriptの場合

まず/.{2}/という表現を思い付きますが、これでは「同じ文字が2個並んだ文字列」になりません。単に「文字が2個並んだ文字列」です。1個目と2個目の文字が異なってもよいからです。
そこで次のようにします。

str="book";
ret=str.match(/(.)\1/g);

「oo」が返されます(正確にはret[0]として)。
JavaScriptの正規表現では「\1」を使うと括弧に挟まれた部分を取得できます。
/(.)/とすると任意の1文字が取得でき、\1に格納されます。
/(.)\1/とすると/\1\1/のように「同じ文字が2個並んだ文字列」を探すことになります。

秀丸の場合

検索文字列として「(.)\1」を指定します。
もちろん正規表現にチェックを入れます。
もし「同じ文字が2個以上並んだ文字列」を検索するならば「(.)\1+」とするとよいでしょう。
「ぱみゅぱみゅ」のように「同じ文字列が2回並んだ文字列」ならば「(.+)\1」だとうまくいきます。

[ 2011年5月23日 | カテゴリー: JavaScript | タグ: , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報