文章目录

  • 概念
  • 作用
    • 匹配
    • 提取
    • 替换
  • 特点
  • 组成
    • 普通字符
    • 元字符
  • 元字符
  • 常用案例

概念

正则表达式最初是科学家对人类神经系统的工作原理进行研究,目前在编程语言中得到广泛运用

正则表达式通常被用来检索、替换、选取那些符合某个模式(规则)的文本

正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、以及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

作用

匹配

判断给定的字符串是否符合正则表达式的过滤逻辑

提取

可以通过正则表达式,从字符串中获取需要的特定部分

替换

正则有很强大的字符串替换能力

特点

  1. 灵活性、逻辑性和功能性非常强
  2. 运用广。比如:爬虫
  3. 对于刚接触的人来说,比较绕、晦涩、难懂

组成

普通字符

‘huan’、‘kai’、‘123’

元字符

正则表达式中有特殊意义的字符

  1. \d 匹配数字
  2. \w 匹配字母或数字或下划线

元字符

  1. 在线测试:正则表达式在线测试

  2. 常用元字符

元字符 描述
\d 匹配一个数字字符。等价于[0-9]
\D 匹配一个非数字字符。等价于[^0-9]
\w 匹配包括下划线的任何单词字符。等价于"[A-Za-z0-9]"
\W 匹配任何非单词字符。等价于"[^A-Za-z0-9]"
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]
\S 匹配任何非空白字符。[^\f\n\r\t\v]
. 匹配除"\n"之外的任何单个字符。要匹配包括"\n"在内的任何字符,使用像"(.︱\n)"的模式
^ 匹配输入字符串的开始位置.如果设置了RegExp对象的Multiline属性,^也匹配"\n"或"\r"之后的位置
$ 匹配输入字符串的结束位置.如果设置了RegExp对象的Multiline属性,^也匹配"\n"或"\r"之前的位置
  1. 限定符
限定符 描述
* 匹配前面的子表达式零次或多次。例如,"zo*“能匹配"z"以及"zoo”。*等价于{0,}
+ 匹配前面的子表达式一次或多次。例如,“zo+“能匹配"zo"以及"zoo”,但不能匹配"z”。+等价于{1,}
? 匹配前面的子表达式零次或一次。例如,"do(es)?“可以匹配"does"或者"does"中的"do”。?等价于{0,1}
{n} n是一个非负整数。匹配确定的n次。例如,"o{2}"不能匹配"Bob"中的“o”,但是能匹配“food”中的两个o
{n,} n是一个非负整数。至少匹配n次。例如,"o{2}"不能匹配"Bob"中的“o”,但是能匹配“foooooood”中的所有o。"o{1}“等价于"o+”。"o{0,}"等价于o{*}
{n,m} 匹配任何非空白字符。等价于[^\f\n\r\t\v]
  1. 其他
其他 描述
[xyz] 字符合集。匹配所有包含的任意一个字符。例如:[abc]可以匹配plain中的a
[^xyz] 负值字符合集。匹配未包含的任意一个字符。例如:[^abc]可以匹配plain中的p
[a-z] 字符范围。匹配指定范围内的任意字符。例如,[a-z]可以匹配任何在a到z范围内的任意字符
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,[^a-z]可以匹配任何不在a到z范围内的任意小写字母字符
() 从两个直接两种选择一个分组。例如,gr(a|e)y匹配gray或者grey

常用案例

  1. 用户名:^[a-z0-9_-]{3,16}$
  2. 密码:^[a-z0-9_-]{6,18}$
  3. 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
  4. 邮编:^[1-9]\d{5}$
  5. 验证日期:^\d{4}-\d{1,2}-\d{1,2}
  6. 验证邮箱:^\w+@\w+.\w+&

正则表达式:基础知识学习相关推荐

  1. Javascript 基础知识学习

    Javascript 基础知识学习 参考自:https://www.w3cschool.cn/javascript/ javascript 简介 JavaScript 是互联网上最流行的脚本语言,这门 ...

  2. 基础知识学习---牛客网C++面试宝典(五)C/C++基础之新特性

    1.本栏用来记录社招找工作过程中的内容,包括基础知识学习以及面试问题的记录等,以便于后续个人回顾学习: 暂时只有2023年3月份,第一次社招找工作的过程: 2.个人经历: 研究生期间课题是SLAM在无 ...

  3. 万物之始正则表达式全解析三部曲(上篇)-正则表达式基础知识及语法

    前言 各位小伙伴大家好,接下来几天时间,我会从多个角度对正则表达式进行系统阐述,让你了解正则表达式的前世今生. 以下是博主整理的Linux知识专栏,喜欢的小伙伴可根据自己的需求自行订阅. Linux疑 ...

  4. 计算机二级二叉树基础知识,2017年计算机二级公共基础知识学习教程:树与二叉树...

    (六)树与二叉树 1.树的基本概念 树是一种简单的非线性结构.在树结构中,数据元素之间有着明显的层次结构.在树的图形表示中,用直线连接两端的结点,上端点为前件,下端点为后件. 在树结构中,每一个结点只 ...

  5. Python 基础知识学习笔记——NumPy

    Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...

  6. Python 基础知识学习笔记——OpenCV(1)

    Python 基础知识学习笔记--OpenCV(1) OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,它轻量而且高效,被广泛的使用. 整理一下OpenCV学习笔记,以防忘记. 文章目录 Py ...

  7. Python基础知识学习笔记——Matplotlib绘图

    Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...

  8. python基础知识学习笔记(2)

    python基础知识学习笔记(2) 整理一下python基础知识,以防忘记 文章目录 python基础知识学习笔记(2) python简洁的一行代码 python简洁的一行代码 1.交换两个变量 # ...

  9. python基础知识学习笔记(1)

    python 基础知识学习笔记(1) 总结一下Python基础知识,以防忘记. 文章目录 python 基础知识学习笔记(1) 一.起步 1.python安装与编译环境 二.变量和简单数据类型 三.列 ...

  10. qt checkbox 选中事件_Qt基础知识学习

    Qt基础知识学习 Qt C++ SQLite ★★★★★   Qt · 简介 Qt是由Qt Company开发的面向对象的跨平台C++图形用户界面应用程序开发框架. 前期 · 准备 01 辨析Qt(开 ...

最新文章

  1. AT89C51 单片机在电话远程控制器中的应用
  2. 设计需要冲击力:「不怕没品味的人,就怕没品味的人用心」
  3. Linux配置rsylogs日志发送,syslog强大而安全的日志处理系统
  4. git 分支的创建和切换
  5. mysql的服务器编号_mysql主从服务器配置.doc
  6. 简易 Vue 构建--篇二
  7. placeholder字体大小以及颜色的修改
  8. exe文件注册服务的方法
  9. BackgroundWorker使用总结
  10. Exadata使用EXAchk进行健康检查
  11. java与seo_seo和java哪个更好!
  12. 自定义列表数据自动循环向下滚动view(类似于通知通报消息)
  13. 华为手机的快应用是什么?如何使用快应用?
  14. MATLAB积分计算与积分变换
  15. 资产管理运维一体化 接入IOT、BIM的设备数字智慧化管理
  16. 如何给Mac OS 更新到指定版本系统
  17. python re正则模块详解
  18. js 根据身份证获取出生日期与年龄
  19. primocache学生党常用场景设置
  20. python说话语音代码_Python文字转换语音,让你的文字会「说话」,抠脚大汉秒变撒娇萌妹...

热门文章

  1. 145. PHP header status code
  2. 28. Element nodeValue 属性
  3. 2.2 Zend_Controller 基础
  4. oracle 11g表空间之最大最小
  5. maven编译时出现读取XXX时出错invalid LOC header bad signature
  6. [2019杭电多校第五场][hdu6630]permutation 2
  7. windows与linux多线程对比
  8. mvc 调试 f12 浏览器闪退
  9. Struts2 中的值栈的理解
  10. 把博客园的博客导出为MovableType的文本格式