我用google搜索正则表达式,检查字符串超过两次, 然后我找到了这个例子:
egrep“(\ w {2})。* \ 1”文件
但我可以理解“(\ w {2})。* \ 1”这个。
有人可以详细解释我或者给我一些参考网页吗?
答案 0 :(得分:1)
(\w{2})
匹配任何包含所有这些字词的字符:A-Z,
a-z,0-9和下划线,数量为2({2}
量词),它
也将它们分组为一个被捕获的组,即记住匹配的字符和那些字符
可以使用带编号的反向引用再次引用字符
这种情况\1
.*
匹配0或更多任何字符\1
再次与第一组匹配因此,正则表达式会尝试匹配同一行中0个或更多字符后重复的任何2个字符。
$ egrep "(\w{2}).*\1"
ab;;ab
ab;;ab
abcdab
abcdab
12ab12
12ab12
12abcd123
12abcd123
abab
abab
$
输入和匹配的输出:
ab;;ab
已捕获的群组\ 1:ab
且匹配的字符串为ab;;ab
abcdab
已捕获的群组\ 1:ab
且匹配的字符串为abcdab
12ab12
已捕获的群组\ 1:ab
且匹配的字符串为12ab12
12abcd123
已捕获的群组\ 1:12
且匹配的字符串为
12abcd12
abab
已捕获的群组\ 1:ab
且匹配的字符串为abab
正如所指出的,可以找到有关元/特殊字符的更多信息here