码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • (一)正则表达式——基础概念


    (一)正则表达式——基础概念

    概括

    用来处理字符串的规则。除了对象、函数,我们操作得最多的就是字符串

    正则的两大作用:

    1. 验证是否匹配
    2. 把匹配到的内容捕获到

    1. 量词元字符

    1. *特殊元字符

    点. :除了\r \n以外的字符

    1. 普通元字符

    https://cdn.jsdelivr.net/gh/bobcn/hexo_resize_image.js@master/hexo_resize_image.js

    修饰符

    额外再多设置一点规则

    总结:

    基础规则:

    正则是用来处理字符串的,且只能处理字符串

    做两件事:

    1. 验证字符串是否符合这个规则
    2. 把符合规则的捕获到

    元字符和修饰符,充分理解它们的特征和性质,才能用这些写出正则表达式,对一个字符串进行匹配和捕获。

    匹配和捕获2个概念

    匹配:test

    捕获:exec

    元字符剖析*

    []:表示字符本身的意思,除^ - \ 等以外。不能识别多位,只能是一位

    ():改变优先级

    \:转义字符

    ^$

    段号

    必须符合某个特定规则:则都要加上 ^xxx$,表示“只能是xxx”

    点号 .

    反斜杠

    字符串中的反斜杠

    一个斜杠在字符串里不是斜杠,两个斜杠才代表斜杠

    x|y

    分组附带的作用:改变优先级

    []

    1. 代表本身的含义

    1. 但是有一些还是会转译

    反斜杠还是保持转译的功能

    1. 中括号中不存在多位数

    console.log(/^[12][0-9]$/.test('11'))
    

    常用正则表达式编写*

    1. 是否为有效数字

    1. 首先是规则分析,要学会如何分析规则
    2. 写正则是按位写,因为正则中每个元字符占1位,加上量词元字符占对应的位数

    1. 验证密码

    1. console.log(/^[-+]?([1-9]\d+|[0-9])(\.\d+)?$/.test('09'))
    2. console.log(/^[\w]{6,16}$/.test('aaaaaaaaaaaaaaa'))

    1. 验证真实姓名

    中文正则 \u4e00-\u9fa5

    1. console.log(/^[-+]?([1-9]\d+|[0-9])(\.\d+)?$/.test('09'))
    2. console.log(/^[\w]{6,16}$/.test('aaaaaaaaaaaaaaa'))
    3. console.log(/^[\u4e00-\u9fa5]{2,10}(·[\u4e00-\u9fa5]{2,10}){0,2}$/.test('刘可琦'))

    1. 验证邮箱*稍微复杂点

    规则分析 从结果看规则

    @分为前后两半

    1. 验证身份证

    二代身份证只有18位

    最后一位可能会出现大写X

    身份证正则表达式_读书,看报,零食,睡觉的博客-CSDN博客_身份证正则

    两种创建方式的区别

    反斜杠

    通过构造函数的方式 要写2个斜杠。因为字符串中的/也有特殊的含义

    1. let reg=/\d+/g;
    2. reg=new RegExp('\\d+','g')

    变量

    变量只能用构造函数的方式,因为只有构造函数的方式参数是字符串,可通过字符串拼接的方式来嵌入变量

  • 相关阅读:
    PacBio三代宏基因组测序大幅提升海洋水体宏基因组研究效果
    CSS自定义属性与前端页面的主题切换
    学习【Cesium】第七篇,Cesium地图加载3D建筑物并设置属性(学不会揍我)
    前端面试题:在浏览器输入url回车后发生什么?浏览器渲染页面详细流程
    Pytorch获取特征图
    m基于随机接入代价的异构网络速率分配算法matlab仿真
    SQL入门教程
    【Python从0到1】第四篇:使用库
    CH341应用升级为CH347软硬件注意事项
    C与C++的区别
  • 原文地址:https://blog.csdn.net/betterangela/article/details/128135662
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号