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

正则表达式与文本处理三剑客深入解析

本文深入解析了正则表达式及其在文本处理中的应用,详细介绍了常用的正则表达式模式,如`[0-9]`用于匹配任意一个数字字符,`[^0-9]`匹配任意一个非数字字符,`^[0-9]`表示以数字开头,`[a-z]`匹配任意一个小写字母,而`[a-zA-Z]`则匹配任意一个字母,并强调了正则表达式中大小写的区分。此外,文章还探讨了正则表达式在文本处理中的高级用法,包括模式匹配、字符串替换和数据提取等技术,为读者提供了丰富的实战案例和应用场景。

1.正则表达式

  [0-9]             任意一个数字字符

  [^0-9]           任意一个非数字,取非

  ^[0-9]           表示以数字开头   

  [a-z]              任意一个小写字母

  [a-zA-Z]        任意一个字母,正则表达式中区分大小写

    .                  表示任意一个字符

   *                   表示匹配*号前面的字符任意次,包含0次        

  .*                   表示任意个任意字符                   

  \+                   表示匹配+号前面的字符1次或多次,至少1次

                        技术分享图片

 \?                   表示匹配?号前面的字符0次或1次

{n}                    表示其前面字符出现的次数

\{n,m\}             表示匹配其前面的字符至少n次,最多m次

                       技术分享图片

 |                      表示匹配|号左面或右面

 2.  grep/egrep命令

   grep  [-cinvABC]  ‘word‘  filename1  filename1…..

  选项

 -c           count,统计匹配的行数

 -n           number,匹配的行显示在原文件中的行号

 -v            取反,显示不匹配的行

 -r            递归遍历子目录下的所有文件

 -A     过滤显示出匹配行的上面的n行,不包括匹配行

 -B     过滤显示出匹配行的下面的n行,不包括匹配行

 -C     context(上下文),过滤出匹配行的上面和下面n行,不包括匹配行

      技术分享图片

注意:grep  -E   等价于  egrep

3. sed命令

 1)选项

   -n                    取消默认输出,仅输出匹配的行

   -r                     类似grep的-E选项,特殊符号不需要脱义

           

   -i                     sed命令处理文件,仅输出处理的结果,文件的内容不会更改保存;

                  -i选项,文件的内容会更改保存。

   -e                    多次处理匹配行

                            技术分享图片

 2)打印输出匹配行,类似grep,但匹配的关健字不带颜色显示

      技术分享图片

 

 3)打印指定行

  1)sed  -n  ‘2’p   file               打印第2行

  2)sed  -n  ‘2,5’p  file              打印第2到第5行

       sed  -n  ‘2,$’p  file              打印第2到最后(尾)行

       sed  -n  ‘1,$’p  file              打印所有行

 4)查找替换字符

    针对字符

        技术分享图片

   针对正则表达式

      技术分享图片

 5)删除某些字符,即把某些字符替换成空

    技术分享图片

  6)在行首新增字符

   技术分享图片

  7)引用()内的内容;贪婪匹配

   test.txt的内容,把第一个冒号前的内容和最后一个冒号后的内容调换

     技术分享图片

 


推荐阅读
  • EasyUI作为一种高效的前端框架,显著简化了JavaScript代码的编写,提升了开发效率。在构建窗口应用程序时,首先需要引入EasyUI所需的JS文件和CSS样式表。由于EasyUI依赖于jQuery,因此还需确保正确加载jQuery库。通过这种方式,开发者能够快速实现界面组件的动态交互与美观布局,为用户提供更加流畅的使用体验。 ... [详细]
  • 通过命令行工具 `virt-install` 配置和安装虚拟机环境。`virt-install` 是一个基于 `libvirt` 虚拟化管理库的命令行工具,用于创建新的虚拟机实例。该工具支持通过串行控制台和 SDL 图形界面进行虚拟机的安装和管理,适用于多种操作系统和虚拟化平台。 ... [详细]
  • 问题背景:在使用Struts2注解实现ZIP文件下载功能时,由于InputStream未正确关闭,导致Tomcat服务器异常终止。重启后,系统抛出`java.io.EOFException`错误。具体表现为,在文件下载过程中,如果请求未正常完成或客户端提前中断连接,未关闭的InputStream会占用资源,最终导致服务器资源耗尽,触发异常。为解决此问题,建议在代码中确保InputStream在使用完毕后能够及时且正确地关闭,以避免资源泄露和服务器崩溃。 ... [详细]
  • 本文详细解析了 `DirectoryInfo.GetFiles` 方法的使用方法及其应用场景。通过示例代码展示了如何在 C# 程序中利用该方法获取指定目录下的所有文件列表,同时探讨了其参数选项和返回值类型,为开发者提供了实用的操作指南。 ... [详细]
  • 下面的代码旨在输出其类文件的完整名称。对于不熟悉类字面量的读者,`Me.class.getName()` 方法会返回类的全称,例如 “com.javapuzzlers.Me”。通过这一机制,可以深入了解 Java 类加载和反射机制的内部工作原理。 ... [详细]
  • 本文深入探讨了Windows操作系统中线程同步机制的关键技术,重点分析了`WaitForSingleObject`和`Event`的使用方法及其应用场景。通过详细介绍`CreateEvent`函数的创建过程及其在判断线程退出和实现线程间同步中的重要作用,结合具体实例,展示了如何高效地利用这些工具来解决多线程编程中的常见问题。此外,文章还讨论了这些机制在实际开发中的最佳实践和注意事项,为开发者提供了宝贵的参考。 ... [详细]
  • 在进行 MySQL 表连接操作时,首先需明确业务需求,确定所需字段所在的表,并选择合适的连接类型。关键在于识别两个表之间的关联字段,如学生表中的 `studentNO` 与成绩表中的 `studentID`,并设置相应的连接条件,以确保数据准确匹配。此外,合理利用索引和优化查询语句,可以显著提升查询性能。 ... [详细]
  • 使用 Vue 集成 iScroll 实现移动端表格横向滚动与固定列功能 ... [详细]
  • NanoPi2 使用体验深入解析(续篇)
    随着Raspberry Pi的问世,开源硬件领域迎来了前所未有的发展,激发了全球范围内的创新热潮。在中国,这一趋势同样催生了一系列类似的开发板,例如NanoPi 2。本文作为前篇的延续,将深入探讨NanoPi 2的实际使用体验,从性能、兼容性到应用场景,进行全面分析。 ... [详细]
  • 在Linux/WSL环境中,本文对Shell任务的并行处理进行了详细的测试与分析。通过多种并行处理技术,如GNU Parallel和xargs,探讨了如何有效提升任务执行效率和系统资源利用率。实验结果表明,合理配置并行参数能够显著缩短任务完成时间,提高系统整体性能。此外,文章还介绍了Shell脚本编写的基本原则和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 如何使用专业软件打开和编辑PHP电影文件?
    如何使用专业软件打开和编辑PHP电影文件? ... [详细]
  • 在Tomcat启动过程中,遇到了 `java.io.EOFException` 异常,具体表现为 `ObjectInputStream$PeekInputStream.readFully` 方法读取数据时出现不完整的情况。该问题通常由输入流提前结束或数据传输不完整引起,需要检查数据源的完整性和网络连接的稳定性。 ... [详细]
  • 本文深入探讨了 AdoDataSet RecordSet 的序列化与反序列化技术,详细解析了将 RecordSet 转换为 XML 格式的方法。通过使用 Variant 类型变量和 TStringStream 流对象,实现数据集的高效转换与存储。该方法不仅提高了数据传输的灵活性,还增强了数据处理的兼容性和可扩展性。 ... [详细]
  • 超链接作为网页间的重要连接方式,不仅是信息流动的关键通道,还极大地提升了网络资源的可访问性和互联性。通过超链接,用户能够便捷地在不同网站和页面之间跳转,获取所需信息,促进了互联网内容的广泛传播与高效利用。 ... [详细]
  • 第一次写这玩意,不知道什么时候能写完,今天项目比较近,期望年底能看完吧。先定个小目标20201228完成第1章Spring介绍第2章入门第3章在Spring中引入IoC和DI第4章 ... [详细]
author-avatar
zhangiloveyou
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有