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

【Linux学习】正则表达式学习记录

正则表达式

  • 正则表达式
    • 位置标记
    • 标识符
    • 数量修饰符
    • 捕获元和非捕获元, 用于操作某个匹配中的一部分内容
    • 其他
    • 正则式用例
  • 扩展正则表达式


正则表达式

位置标记

  • ^ (匹配行首)
  • $ (匹配行尾)

标识符

  • . (匹配任意字符)
  • [] (匹配中括号内的任意单个字符)
  • [^] (不匹配中括号内的任意单个字符)

数量修饰符

  • ? (匹配0或1次)
  • + (匹配1或多次)
  • * (匹配0或多次)
  • {n} (匹配之前的项n次)
  • {n,} (至少匹配之前的项n次)
  • {n,m} (至少匹配之前的项n次,至多匹配m次)

捕获元和非捕获元, 用于操作某个匹配中的一部分内容

  • () (捕获括号内的内容并缓存,通过$0-$9来进行调用)
  • (?:\) (非捕获元)
  • (?=) (匹配后边等于xxx的XXX)
  • (?<=) (匹配前边等于xxx的XXX)
  • (?!) (匹配后边不等于xxx的XXX)
  • (?<!) (匹配前边不等于xxx的XXX)

其他

  • () (将括号中的内容视为一个整体)
  • | (选择结构,可以匹配两边的任意一项(A|a), 不是所有语言的正则都支持该符号)
  • \ (转义字符,转义之后的一个字符)

正则式用例

( +[a-zA-Z]+[?,.]? +)                                   # 匹配任意单词
[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}          # 匹配IP地址,仅匹配,不检查合法性
[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}    # 匹配IP地址,仅匹配,不检查合法性
(?:[Ww]indows).*        # 用于匹配任何windows型号中的"Windows"字符串
hello(?= world)         # 用于匹配后面是world单词的hello字符串
(?<=hello )world        # 用于匹配前面是hello单词的world字符串
hello(?! world)         # 用于匹配后面不是world单词的hello字符串
(?<!hello )world        # 用于匹配前面不是hello单词的world字符串^\s*(?=\r?$)\n          # 匹配空行
  • 正则式引擎通常会选择最长匹配。
  • 可以匹配的文本,可以是管道的输出文件、或者命令行输入的字符串
  • 可视化正则表达式

扩展正则表达式

  1. grep 要加-P选项。
  2. Perl正则支持。要开启扩展正则表达式支持。
  • \d (等价于[0-9], 匹配数字)
  • \D (等价于[^0-9], 不匹配数字)
  • \b (匹配单词边界, 指单词和空格的位置)
  • \B (不匹配单词边界)
  • \s (匹配任何不可见字符,包括空格符、制表符、换页符等。等价于[\f\n\r\t\v])
  • \S (匹配任何可见字符。等价于[^\f\n\r\t\v])
  • \w (匹配包括下划线的任何单词字符。Unicode字符。)
  • \W (匹配任何非单词字符。)
  • \f (换页符, \x0C和\cL)
  • \n (换行符, \x0A和\cJ)
  • \r (回车符, \x0D和\cM)
  • \t (制表符, \x09和\cI) TODO:不确定是\cI还是\cl
  • \v (垂直制表符, \x0B和\cK)
  • \c[A-Za-z] (匹配一个控制字符)
  • \x[0-9A-F]{2} (匹配一个十六进制值,必须是两个数字长,0x00-0xFF)
  • \u[0-9A-F]{4} (匹配一个十六进制值,必须是4个数字长,0x0000-0xFFFF,Unicode字符)

\u00A9匹配版权符号

  • \n[0-7]+ (匹配一个八进制值)
  • \[1-9] (对获取匹配(xxx)的引用,如:"(.)\1"匹配两个连续相同的字符, 只有一条反斜杠,写两条是因为Markdown预览器做了转义)
  • \p[PLMZSNC] (匹配Unicode属性)
  • < (匹配单词的开始)
  • > (匹配单词的结束)

<the>可以匹配"on the table"中的"the",但是无法匹配"otherwise"中的"the"。

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

相关文章:

  • 【鸿蒙开发001】上下翻页-翻书效果实现【可复用】
  • 写一个天气查询Mcp Server
  • 2025年9月计算机二级C++语言程序设计——选择题打卡Day8
  • urdf文件可以使用的一些工具(urdf检查和可视化)
  • 【leetcode】100.相同的树
  • Elasticsearch核心配置详解与优化
  • SAP 怎么知道物料的自动过账流程
  • DFT、CHORD
  • “上门经济”的胜利:深度解析家政O2O如何用“用户体验”重塑传统行业
  • 【双指针- LeetCode】15.三数之和
  • CPLD和FPGA的区别
  • LeetCode 560. 和为 K 的子数组
  • Linux827 测试
  • Linux MDIO 深入分析
  • 电子电气架构 --- 软件项目复杂性的驾驭思路
  • [Sync_ai_vid] UNet模型 | 音频特征提取器(Whisper)
  • FPGA实现Aurora 64B66B图像视频传输,基于GTY高速收发器,提供2套工程源码和技术支持
  • 第三阶段数据库-10:存储过程,事务,异常,视图,自定义函数,触发器,N关键字
  • synchronized和Lock有什么区别?
  • Vue3》》基础
  • Ubuntu 20.04.6交叉编译得到Ubuntu 16.04.6的可执行文件
  • 5GNR CSI反馈 TypeI码本
  • Shader开发(十七)着色器中的纹理采样与渲染
  • OpenCV4.X库功能全解---个人笔记
  • 基于51单片机温度控制系统报警器恒温箱水温设计
  • Oh My Zsh + Tabby 终端配置指南
  • CB1-2-基础启航
  • 工业 DCS 全面科普:从入门到 AI 赋能的未来
  • 大视码垛机器人:以技术优势撬动工业码垛升级
  • 【datawhale组队学习】RAG技术 -TASK05 向量数据库实践(第三章3、4节)