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 是第二个匹配项

所以你在寻找

(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”引用第二对括号,“\1”引用第一对。它是“\2\1”而不是“\1\2”,否则它就不是回文。

于 2013-03-28T20:46:04.860 回答