我真的不明白如何使用这些反向引用。让我给你举个例子:
grep '\([a-z]\)\([a-z]\)[a-z]\2\1'
前面的指令在文件中查找回文词。但我不明白它是如何工作的?所有这些是怎么回事\2\1
,为什么不是\1\2
?
简单举例说明:
\2\1
将匹配如下文本:foxof
这里:
f o x o f
| | \2 \1
| |_2
|
|_1
\1\2
将匹配如下文本:foxfo
所以你会看到不同的
\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”而不是“\1\2”,否则它就不是回文。