热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

正则表达式常用语法详解与grep的高级查找练习

1.基础语法2.grep练习在文章link中,介绍过grep的基本用法,本文学习正则表达式,顺便学习grep的一些进阶用法。练习的文本

1. 基础语法

在这里插入图片描述

2. grep练习

在文章link中, 介绍过grep的基本用法,本文学习正则表达式,顺便学习grep的一些进阶用法。

练习的文本来自于鸟叔私房菜。总共有22行文字。

练习1:中括号 [] 来搜寻字符集合

说明:[] 里面不论有几个字元,他都仅代表某‘一个’字元

题目: 搜寻 test 或 taste 这两个单词对应的行

回答:grep -n 't[ae]st' regular_express.txt

结果:

在这里插入图片描述
题目:找出有数字的那一行

回答:grep -n '[0-9]' regular_express.txt

结果:
在这里插入图片描述

练习2:集合字符[]的反向选择[^]

题目: 找出oo前面不是g的行

回答:grep -n '[^g]oo' regular_express.txt

结果:
v

练习3:行首与行尾字元 ^ $

题目: the出现在行首列的行

回答:grep -in '^the' regular_express.txt

结果:
在这里插入图片描述题目: 开头不是字母的行

回答:grep -n '^[^a-zA-Z]' regular_express.txt

结果:
在这里插入图片描述
注意:本次练习中两个^有着不同的含义。第一个表示开头,第二个表示反向选择。

题目:输出结尾是小数点的行

回答:grep -n '/.$' regular_express.txt

结果:

在这里插入图片描述因为小数点有其他含义,所以必须使用\让小数点变为普通字符

题目: 找出空白行

回答: grep -n '^$' regular_express.txt

效果:
在这里插入图片描述

练习4:任意一个字符. 和 重复字符*

注意:

正则表达式中的*和bash中的万用字符表达的含义不同。

  • .(小数点):代表‘一定有一个任意字元’的意思;
  • *(星星号):代表重复 0 个或多个前面的 RE 字符’的意义。
  • .*就代表零个或多个任意字元

题目: 输出至少有两个连续oo的字符串

回答:
grep -n 'ooo*' regular_express.txt

结果:

在这里插入图片描述

练习5:限定连续字符范围{}

注意:

按照正则表示法的处理原则,要让 { 生效,得要加上反斜线

题目: 找出 2 个 o 以上的 goooo…g所在行

回答:

grep -n 'go\{2,\}g' regular_express.txt
效果:
在这里插入图片描述


推荐阅读
  • 如何利用正则表达式(regexp)实现高效的模式匹配?本文探讨了正则表达式在编程中的应用,并分析了一个示例程序中存在的问题。通过具体的代码示例,指出该程序在定义和使用正则表达式时的不当之处,旨在帮助读者更好地理解和应用正则表达式技术。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • linux用通配符排除指定字符结尾文件的一种方法,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在Mac平台上通过终端操作完成MySQL的启动与彻底关闭——八步指南
    在Mac平台上,通过终端操作实现MySQL的启动与完全关闭,本文提供了一套详细的八步指南。首先,在Finder中使用快捷键进入 `/usr/local` 目录,找到并进入 `mysql` 文件夹。接着,右键选择该文件夹并从上下文菜单中打开终端。在终端中,输入并执行 `./scripts/mysql_install` 命令以开始安装或初始化过程。后续步骤将指导用户如何顺利启动和安全关闭MySQL服务,确保系统资源的有效管理。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 优化端口配置:精准匹配尾部端口号 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • SQL Server 2008 默认使用1433端口进行通信,但有时会误认为是5432端口,后者实际上已被IANA(互联网号码分配机构)指定为PostgreSQL的默认端口。本文详细解析了SQL Server 2008的端口配置,并提供了增强安全性的配置建议,包括更改默认端口、启用防火墙规则和实施严格的访问控制策略,以减少潜在的安全风险。 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • 本文将详细介绍如何在SSM框架中无缝集成ShardingSphere 4.10,以实现高效的数据分片和读写分离。通过实例演示和代码解析,帮助开发者快速掌握这一复杂但实用的技术。文章从基础概念入手,逐步深入到具体配置和应用实践,旨在为读者提供一个全面、易懂的整合指南。 ... [详细]
  • 本文详细介绍了在 Docker 环境中部署 Zookeeper 镜像的最佳实践与步骤。首先,通过 `docker search zookeeper` 命令查找可用的 Zookeeper 镜像。接着,使用 `docker pull zookeeper` 或 `docker pull jplock/zookeeper` 命令下载所需的镜像。文章还涵盖了配置文件的优化、网络设置以及容器运行时的注意事项,为用户提供了一套完整的部署方案。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • 在 Go 开发环境中,通过使用 iTerm 和 Oh My Zsh,可以显著提升终端操作的效率和体验。Oh My Zsh 是一个强大的 Zsh 配置管理框架,提供了丰富的插件支持,如代码高亮、自动补全和多种编程语言支持,同时还拥有众多美观的主题,使终端界面更加个性化和高效。Zsh 作为一种高度可定制的 shell,不仅适用于交互式应用,还可用作脚本解释器,集成了 bash、ksh 和 tcsh 等其他 shell 的诸多优点,并具备独特的功能特性。 ... [详细]
author-avatar
不要破网名_329
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有