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

学习记录—正则表达式-基本语法

正则表达式简介-《菜鸟教程》

正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。

正则表达式可以在文本中查找、替换、提取和验证特定的模式。

本期内容将介绍普通字符,特殊字符,限定符,定位符,贪婪和非贪婪几部分。

一.普通字符

  [    ] [a]    表示仅匹配字符a
  [^   ] [^a]   表示不匹配字符a
  [A-B][A-Z]  表示匹配A~Z区间内的大写字母
  [a-b][a-z]   表示 匹配a~z区间内的小写字母
      .  匹配除换行符(\n、\r)之外的任何单个字符(含空格等不可见字符)
[\s\S ]匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。
\w匹配字母、数字、下划线。
\d匹配任意一个阿拉伯数字(0 到 9)等价于 [0-9]

二.特殊符号

*匹配前面的子表达式零次或多次。
+匹配前面的子表达式一次或多次。
.匹配除换行符 \n 之外的任何单字符。
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。
|指明两项之间的一个选择。(可以理解为 或  ,即并集 )

注意:许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。

三.限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种.

*匹配前面的子表达式零次或多次。
+匹配前面的子表达式一次或多次。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
{n}n为非负整数,匹配确定的n
{n,}n为非负整数,至少匹配n
{n,m}nm为非负整数,至少匹配n次,至多匹配m

注意:限定符出现在范围表达式后,将应用于整个范围表达式。

四.定位符

定位符能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

\b:用于匹配字符边界

\B:用于匹配非字符边界

注意:定位符放在目标字符前,会在字符前查找,放在目标字符后,会在字符后查找。

五.贪婪与非贪婪

贪婪:匹配从开始小于符号 (<) 到关闭 h1 标记的大于符号 (>) 之间的所有内容。

非贪婪:只匹配开始和结束 h1 标签,下面的非贪婪表达式只匹配 <h1>。

* 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。

例如,可能仅希望查找在类HTML标签内的内容。

通过在 *+ 或 ? 限定符之后放置 ?,该表达式从"贪婪"表达式转换为"非贪婪"表达式或者最小匹配。

http://www.lryc.cn/news/510440.html

相关文章:

  • 智慧农业物联网传感器:开启农业新时代
  • 普通人怎么入门学习并使用AI?
  • Java中处理if-else的几种高级方法
  • 前端知识补充—CSS
  • 企业架构学习笔记-数字化转型
  • Linux网络——TCP的运用
  • Vue3之状态管理Vuex
  • DPO(Direct Preference Optimization)算法解释:中英双语
  • Hostapd2.11解析笔记
  • js控制文字溢出显示省略号
  • WPF+MVVM案例实战与特效(四十七)-实现一个路径绘图的自定义按钮控件
  • 操作002:HelloWorld
  • odoo中@api.model, @api.depends和@api.onchange 装饰器的区别
  • 有哪些精益工具可以帮助企业实现转型?
  • 以太网帧结构
  • QT调用Sqlite数据库
  • 前端
  • 【Git】—— 使用git操作远程仓库(gitee)
  • Paddler负载均衡器
  • OSCP - Proving Grounds - Slort
  • YoloV9改进策略:Head改进|DynamicHead,利用注意力机制统一目标检测头部|即插即用
  • BFD综合详细实验配置案例
  • 自然语言处理与知识图谱的融合与应用
  • c# RSA加解密工具,.netRSA加解密工具
  • Metricbeat安装教程——Linux——Metricbeat监控ES集群
  • 一万多字拆解java中——“ 注解 ”的一切(三)(已完结)
  • 记一次rac故障原因分析(虚拟化平台)
  • Vue CLI 3 项目构建
  • 1114 Family Property (25)
  • 详细介绍Sd-WebUI提示词的语法规则