反向引用

捕获会返回一个捕获组,这个分组是保存在内存中的,不仅可以在正则表达式外部通过程序进行引用,也可以在正则表达式内部进行引用,这种引用方式就是反向引用。

根据捕获组的命名规则,反向引用可分为:

数字编号组反向引用:\k或\number
命名编号组反向引用:\k或\‘name’

捕获组是匹配子表达式的内容按序号或者命名保存起来以便使用,主要是用来查找一些重复的内容或者替换指定字符。

举个例子:查找一串字母"aabbbbgbddesddfiid"里成对的字母。

整理下思路:

匹配到一个字母
匹配下一个字母,检查是否和上一个字母一样
如果一样,则匹配成功,否则失败

这里思路2中匹配下一个字母时,需要用到上一个字母,那怎么记住上一个字母呢?这下子捕获组就有用处啦,我们可以利用捕获把上一个匹配成功的内容来作为本次匹配的条件

首先匹配一个字母:\w

我们需要做成分组才能捕获,因此写成这样:(\w)

然后我们要用这个捕获组作为条件,那就可以: (\w)\1

这样就可以了。

pat:  (\w)\1
SRC:aabbbbgbddesddfiid[@gdylj_58_119 tmp]$ echo "aabbbbgbddesddfiid" | grep -E "(\\w)\\1"
aabbbbgbddesddfiid

参考链接

http://www.cnblogs.com/zhangj-ymm/p/9821813.html

grep 的特殊使用相关推荐

  1. Linux 运维常用命令 find、awk、sed、grep、vi、ps、lsof、rpm

    先用一个脚本,模拟创建 14 个测试文件: #!/bin/bash for ((i=1;i<=10;i++)); do if [ $i -lt 3 ] thentouch /home/mysql ...

  2. Linux shell 学习笔记(2)— 监测程序、磁盘空间和处理文件(ps -ef、top、kill、df、du 、grep、tar)

    1. 监测程序 1.1 检查进程 默认情况下,ps 命令只会显示运行在当前控制台下的属于当前用户的进程. $ ps PID TTY TIME CMD 3081 pts/0 00:00:00 bash ...

  3. logcat 结合 grep 过滤 log 日志信息

    打开终端: 1 adb devices 查看是否连接 2 连接之后使用adb shell 3  logcat | grep "关键字" 这样就能过滤日志了 当然如果想忽略大小写可以 ...

  4. grep 使用 nsr 实现查找

    有时候我们在查找某个方法或者布局之后在那些地方使用 ,可以使用开发工具自带的全局查找,有时候很慢, 我们可以试下 grep 的nsr 命令查找 个人感觉还是很快的 grep -nsr "TA ...

  5. Windows 系统下使用grep 命令

    这2年一直在使用Ubuntu 系统开发, 使用grep命令 很方便,今天在windows 终端里面使用 提示不识别,为了下同事说在git 里面使用可以,试了下再git 里面是可以使用的 首先电脑需要先 ...

  6. Linux中锚定符号的作用,Linux基础(9)文本处理三剑客之grep

    grep的作用:根据指定的模式搜索文本,将匹配到的文本行显示出来 语法格式:grep [options] "PATTERN" file PATTERN为正则表达式,grep一般是与 ...

  7. ATS 5.3.0中利用grep得到纯净的配置文件

    ATS 5.3.0中的配置文件通常会标有详细的注释,但是我们有时候需要纯净的配置文件,特别是在线上部署的配置文件,不需要这么详细的注释.下面是处理过程. cat records.config | gr ...

  8. grep 在HP-UX下的递归查找

    grep 在HP-UX下的递归查找 Linux: man grep 可以看到 -r 选项  -R, -r, --recursive               Read all files under ...

  9. grep 正则表达式及选项以及注意

    说明:在原文基础上稍作了修改 grep命令简介: 在ex编辑器(我没用过)中,启动ex编辑器后要查找某个字符串时,在ex的命令提示符后键入: :/pattern/p :/g/pattern/p gre ...

最新文章

  1. Java基础学习总结(21)——数组
  2. 我们学校的DV作品——《感悟青春》
  3. mysql什么格式转换_MySQL日期格式转换
  4. mysql主从 percona_mysql主从实现(percona-xtrabackup)
  5. C语言 memcpy和memcpy_s区别 - C语言零基础入门教程
  6. CentOS7配置JAVA环境变量
  7. Java 的 ArrayList 的底层数据结构
  8. Zephyr移植到NXP MIMXRT1060_EVK-RT1061 CVL5A过程
  9. C#毕业设计——基于C#+asp.net+SQL server的房地产信息管理系统设计与实现(毕业论文+程序源码)——房地产信息管理系统
  10. 计算机网络习题——循环冗余校验
  11. VTK学习之激光点云动态库封装(排水管道)
  12. 读计算机网络得学五笔吗,新手学五笔打字的步骤
  13. 网络安全等保/安全合规总结
  14. worldpress小工具自定义html,教程 | 用 worldpress 搭建自己的博客 – 小白教程
  15. Spring Cloud之openfeign 处理服务平滑上下线
  16. 防DNS劫持教程,手动修复本地DNS教程
  17. NLP之NER:商品标题属性识别探索与实践
  18. 【平常心无焦虑探讨】未来谁将被淘汰—在日常网络安全工作中使用GPT的感受
  19. 第十七届全国大学生智能车竞赛 华南赛区竞赛(线上)事宜通知
  20. excel合并两列内容_合并多个Excel文件内容到一个Excel中

热门文章

  1. 2022-2028年中国硅藻土产业发展态势及市场发展策略报告
  2. Idea SpringBoot 基于 Docker容器环境进行远程调试
  3. 程序连接不上mysql数据库文件_数据库问题(程序连接mysql错误)
  4. 2022-2028年中国BOPET薄膜行业市场全景调查及投资前景预测报告
  5. Python 标准库之 subprocesss
  6. python内置库之学习ctypes库(二)
  7. python内置库之学习configparser库(一)
  8. 改变自己,让自己变得更好
  9. 反编译软件dnSpy中修改baml文件
  10. 一文告诉你Adam、AdamW、Amsgrad区别和联系 重点