我真的不明白如何使用这些反向引用。让我举个例子:
grep '\([a-z]\)\([a-z]\)[a-z]\2\1'
之前的指令在文件中找到回文词。但我不明白它是如何运作的?所有这些\2\1
的内容是什么,为什么他们不是\1\2
?
答案 0 :(得分:5)
用例子简单解释一下:
\2\1
将匹配以下文字:foxof
这里:
f o x o f
| | \2 \1
| |_2
|
|_1
\1\2
将匹配以下文字:foxfo
所以你看到了不同的
答案 1 :(得分: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
答案 2 :(得分:1)
“\ 2”引用第二对括号,“\ 1”引用第一对括号。它是“\ 2 \ 1”而不是“\ 1 \ 2”,因为否则它不会是回文。