またまた質問させていただきます。
grep '\(.\)\1' っていったいどういうことを
しているのでしょうか?教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

見づらいので全角で書きます。



¥(参照文字列¥)という部分、質問では参照文字列は.(ピリオド)になっていますが、このピリオドは任意の文字列を意味します。

で、その後の¥1これは、簡単にいうと「1番目にでてきたカッコの参照文字列と同じ物を前方一致で探す」 事を意味します。

なので、質問のコマンドでは任意の文字列が2つ続く箇所、つまり aa とか 11 とかを探しに行きます。
例えば、質問の内容を

grep ’¥(..¥)¥1’

とした場合、2文字の並びが2回続く場所を前方一致で探しに行きます。 abab 5252 とか・・。

こんなところでどうでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/01/16 20:50

まず、\(と\)は括った内容をグループ化します。

また\数字で表されたオペレータでの参照になります(数値は正規表現内でのカッコのセットを前方から順番に1,2,3・・・と順番に付けられます)。

なので\(.\)\1を解析すると括弧で括られた.で任意の一文字がヒット、その後に続く\1は\(.\)でのマッチ結果を表すので結果として直前の文字と同じ物にマッチします。

この辺を良く知りたいのであれば「詳説 正規表現」という本を一読する事をオススメします。

参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4900900 …
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/01/16 20:51

同じ文字が二つ続く個所("xx","11","%%"など)を探します。

この回答への補足

回答ありがとうございます。
えぇっと。。。すいません。
\(.\)\1のどの辺から同じ文字が二個続くところを
探すということがわかるのでしょうか?

補足日時:2002/01/16 19:10
    • good
    • 0

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


人気Q&Aランキング