2

これらの後方参照の使用方法が本当にわかりません。例を挙げましょう:

grep '\([a-z]\)\([a-z]\)[a-z]\2\1'

前の命令は、ファイル内の回文単語を検索します。しかし、私はそれがどのように機能するのか理解していませんか?これらすべてに何\2\1があり、なぜそうではないの\1\2ですか?

4

3 に答える 3

5

簡単な例で説明します:

\2\1次のようなテキストに一致します。foxof

ここ:

f o  x  o  f
| |     \2 \1
| |_2
|
|_1

\1\2次のようなテキストに一致します。foxfo

だからあなたは違いを見る

于 2013-03-28T20:49:16.903 に答える
4

\1 は括弧内の最初の一致です \2 は 2 番目の一致です

だからあなたは探している

(any char)(another char)[a middle char](the second char again)(the first char again)
  ([a-z])    ([a-z])        [a-z]               \2                   \1
于 2013-03-28T20:48:13.703 に答える
1

"\2" は 2 番目の括弧のペアを参照し、"\1" は最初のペアを参照します。「\1\2」ではなく「\2\1」です。そうしないと回文にならないからです。

于 2013-03-28T20:46:04.860 に答える