OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

grepについて

  • すぐに回答を!
  • 質問No.199571
  • 閲覧数246
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 16% (11/68)

またまた質問させていただきます。
grep '\(.\)\1' っていったいどういうことを
しているのでしょうか?教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル7

ベストアンサー率 25% (7/27)

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

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

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

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

grep ’¥(..¥)¥1’

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

こんなところでどうでしょう?
お礼コメント
janne

お礼率 16% (11/68)

ありがとうございました。
投稿日時 - 2002-01-16 20:50:54
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 24% (357/1463)

同じ文字が二つ続く個所("xx","11","%%"など)を探します。 ...続きを読む
同じ文字が二つ続く個所("xx","11","%%"など)を探します。
補足コメント
janne

お礼率 16% (11/68)

回答ありがとうございます。
えぇっと。。。すいません。
\(.\)\1のどの辺から同じ文字が二個続くところを
探すということがわかるのでしょうか?
投稿日時 - 2002-01-16 19:10:37
  • 回答No.2
レベル11

ベストアンサー率 58% (114/195)

まず、\(と\)は括った内容をグループ化します。また\数字で表されたオペレータでの参照になります(数値は正規表現内でのカッコのセットを前方から順番に1,2,3・・・と順番に付けられます)。 なので\(.\)\1を解析すると括弧で括られた.で任意の一文字がヒット、その後に続く\1は\(.\)でのマッチ結果を表すので結果として直前の文字と同じ物にマッチします。 この辺を良く知りたいのであれば「詳説 ...続きを読む
まず、\(と\)は括った内容をグループ化します。また\数字で表されたオペレータでの参照になります(数値は正規表現内でのカッコのセットを前方から順番に1,2,3・・・と順番に付けられます)。

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

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

お礼率 16% (11/68)

ありがとうございました。
投稿日時 - 2002-01-16 20:51:17
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ