当前位置: 首页 > news >正文

第4.3节:awk正则表达式详解-特殊字符

1 第4.3节:正则表达式详解-特殊字符

  除了普通字符和转义字符外,正则表达式中还有类特殊字符,可以对正则表达式的行为进行修饰,下表是一些常用的正则表达式特殊字符及含义:

字符说明
^匹配输入字符串的开始位置。要匹配 “^” 字符本身,请使用 “\^”
$匹配输入字符串的结尾位置。要匹配 “$” 字符本身,请使用 “\$”
( )标记一个子表达式的开始和结束位置。要匹配小括号,请使用 “\(” 和 “\)”
[…]用来自定义能够匹配 ‘多种字符’ 的表达式,[]中的…表示用户自定义字符。要匹配中括号,请使用 “\[” 和 “\]”
[^…]这是一个否定逻辑,匹配任何字符但除了这里[]中定义的字符。
{ }修饰匹配次数的符号。要匹配大括号,请使用 “\{” 和 “\}”
.匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 “\.”
?修饰匹配次数为 0 次或 1 次。要匹配 “?” 字符本身,请使用 “\?”
+修饰匹配次数为至少 1 次。要匹配 “+” 字符本身,请使用 “\+”
*修饰匹配次数为 0 次或任意次。要匹配 “*” 字符本身,请使用 “\*”
|左右两边表达式之间 “或” 关系。匹配 "
  • 示例1:使用“^”筛选行首是数字的文本

文本样例:

sample
123
456
789abc
012345678
end

awk代码及运行结果:

$ awk '/^[[:digit:]]+/' sample1.txt
123
456
789abc
012345678
  • 示例2:使用“$”筛选整行都是数字的文本
      上述文本样例中,有部分行是数字+字符的,如果想筛选出全部是 数字的行,该如何处理呢?此时可以使用“^”和“$”来联合约束文本内容:

awk代码及运行结果:

$ awk '/^[[:digit:]]+$/' sample1.txt
123
456
012345678
  • 示例3:利用分组把数字文本行前加上TEL:前缀
      使用正则表达式时,很我场景是查找出符合条件的文本,将其整理成新的格式,此时就使用到了分组。

awk代码及运行结果:

$ awk '/^[[:digit:]]+$/{print gensub(/(.*)/, "TEL: \\1", "g")}' sample1.txt
TEL: 123
TEL: 456
TEL: 012345678
  • 示例4:限定匹配次数,输出3个数字的文本行
$ awk '/^[[:digit:]]{3}$/' sample1.txt
123
456

注意:正则表达式中的{3}表示匹配3个数字,其实,{}次数限定中有两个参数:{最少次数, 最多次数},使用时有很多用法:

  • {指定次数}:严格指定前面的匹配多少次。
  • {最小次数,}:至少要匹配上最小次数,多则不限, 比如:[0-9]{3,}可以匹配123123412345
  • {,最大次数}:至多匹配不要超过最大次数,最少为0次,比如:[0-9]{,3}可以匹配112123,但不能匹配1234
  • {,}:匹配0到无数次,和+的效果相同。注:{}是错误用法。

作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

http://www.dtcms.com/a/337571.html

相关文章:

  • PyTorch数据处理工具箱(数据处理工具箱概述)
  • AI大模型实战:用自然语言处理技术高效处理日常琐事
  • 鸿蒙中应用框架和应用模型
  • 【JavaEE】多线程 -- 阻塞队列
  • 使用WinDbg对软件崩溃信息进行抓包的方法
  • 决策树学习笔记
  • Linux内存管理系统性总结
  • RabbitMQ:数据隔离
  • 代码随想录刷题Day36
  • 大数据时代时序数据库选型指南:深度解析与 Apache IoTDB 实践
  • 3D检测笔记:基础坐标系与标注框介绍
  • 【Langchain系列五】DbGPT——Langchain+PG构建结构化数据库智能问答系统
  • Pageable 菜教程
  • AI应用商业化加速落地 2025智能体爆发与端侧创新成增长引擎
  • BeeWorks 私有化会议系统:筑牢企业会议安全防线,赋能高效协同
  • 敏感数据加密平台设计实战:如何为你的系统打造安全“保险柜”
  • 高防IP如何实现秒级切换?
  • 技术赋能安全:智慧工地构建城市建设新防线
  • AR技术为消防救援装上“智能透视眼”
  • K8s的命名空间需要创建吗
  • 容器化 Android 开发效率:cpolar 内网穿透服务优化远程协作流程
  • Redis主从架构、哨兵模式及集群比较
  • 利用深度强化学习进行芯片布局
  • 【1:1复刻R版】python版火山图函数一键出图
  • iOS 正式包签名指南
  • 【LeetCode】15. 三数之和
  • 从财务整合到患者管理:德国医疗集团 Asklepios完成 SAP S/4HANA 全链条升级路径
  • 贪心算法(Greedy Algorithm)详解
  • 【机器学习】Macro-F1(宏平均 F1)是什么?
  • SWMM排水管网水力、水质建模及在海绵与水环境中的应用技术-模拟降雨和污染物质经过地面、排水管网、蓄水和处理