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

news2024/11/26 11:49:52

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

概括

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

正则的两大作用:

  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. 验证密码

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

  1. 验证真实姓名

中文正则 \u4e00-\u9fa5

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

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

规则分析 从结果看规则

@分为前后两半

  1. 验证身份证

二代身份证只有18位

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

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

两种创建方式的区别

反斜杠

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

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

变量

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域(MSER)

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域(MSER) 1. 最大稳定极值区域(MSER) 最大稳定极值区域(MSER-Maximally Stable Extremal Regions&#xf…

RNN/LSTM (三) 学习torchtext源码

文章目录包装dataset构建词库1.列举数据源2. 遍历数据3. 列举特殊符号4. 构建词库 Field::vocab_clsload_vectors构建读指针 data.BucketIterator在上一文,我们学习了基于torchtext编写lstm模型的实践案例,本文将结合上文案例,深入案例代码&a…

Python自动化之Excel利器openpyxl

文章目录前言一、Workbook1.1 读取xlsx文件1.2 保存二、Sheet2.1 创建Sheet2.2 遍历Sheet2.3 移动Sheet2.4 删除Sheet2.5 插入、删除行列三、单元格3.1 获取某个单元格3.2 遍历单元格3.3 获取范围单元格3.4 单元格赋值3.5 合并/解除合并单元格3.6 单元格数据格式3.7 单元格数字…

[附源码]Python计算机毕业设计Django儿童早教课程管理系统论文2022

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

算法设计与分析 SCAU19180 集合划分问题

19180 集合划分问题 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G;GCC;VC;JAVA Description 教材课后习题2-8 n个元素的集合{1,2,…,n}可以划分若干个非空子集。例如,当n4时,集合{1,2,3,4}可以划分为15个不同的非…

微信小程序开发学习文档(万字总结,一篇搞定前端开发)

一、微信小程序简介 与网页开发不同,小程序有自己的一套标准开发模式:-申请小程序开发账号-安装小程序开发工具-创建和配置小程序项目 1.1 创建第一个小程序 1.2 主界面的5个组成部分 1.3小程序项目的基本构成 pages 用来存放所有小程序的页面&#xf…

Java并发编程—Thread类中的start()方法如何启动一个线程【原理分析】?

一、java线程的介绍: 在java的开发过程中,很多铁子对于java线程肯定不感到陌生,作为java里面重要的组成部分,这里就从如何创建一个线程给大家进行分析; 二、相关知识引入: ​ 之前我了解过,j…

2022年浙江省中职组“网络空间安全”赛项模块B--Windows渗透测试

2022年中职组浙江省“网络空间安全”赛项 B-1:Windows渗透测试一、竞赛时间 420分钟 共计7小时 吃饭一小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第①阶段: 单兵模式系统渗透测试 任务一: Windows操作系统渗透测试 任务二: Linux操作系统渗透测试 任务三…

[附源码]Python计算机毕业设计SSM科技项目在线评审系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

segmenter

patch embedding:例如输入图片大小为224x224,将图片分为固定大小的patch,patch大小为16x16,则每张图像会生成224x224/16x16196个patch,即输入序列长度为196,每个patch维度16x16x3768,线性投射层…

hexo+github手把手教你部署个人博客

一、安装并配置Node.js(原本就有安装) 参考:(1条消息) Node.js安装与配置(详细步骤)_普通网友的博客-CSDN博客_nodejs安装配置 一、下载Node.js官网下载 安装位置与环境变量配置 系统属性-环境变量-系统变量-Path 验…

129页4万字某智慧能源集团数字化管控平台项目 建设方案

目录 数字化管控平台相关项目建议书 1 目录: 1 一、相关项目背景 2 二、需求理解 3 2.1 需求理解 3 三、方案设计 5 3.1 整体方案设计 7 3.3.1 整体架构 7 3.3.2 解决方案说明 8 3.3.3 需求应答 10 3.2 数据仓库 11 3.2.1 数据仓库架构 11 3.2.2 数据仓库产品说明 1…

springMVC01,【第一个springMVC例子(注解版):HelloWorld】

springMVC01,【第一个springMVC例子-注解版:HelloWorld】创建项目1.配置web.xml2.编写spring配置文件3.controller层3.1RequestMapping注解4.运行测试5.小结链接: springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本)&#x…

一种多引擎可视化数据流实现方案

企业大数据处理的挑战 随着大数据时代的到来,数据量迅猛增长,给传统的分析技术带来了巨大的冲击和挑战,企业面临着大数据处理的巨大挑战。将复杂的大数据处理问题进行简化,以便企业有更多人能够进行大数据处理,进而整…

使用azure-data factory

data-fatory介绍 Azure Data Factory(简写 ADF)是Azure的云ETL服务,简单的说,就是云上的SSIS。ADF是基于云的ETL,用于数据集成和数据转换,不需要代码,直接通过UI(code-free UI&…

[附源码]SSM计算机毕业设计疫情防控期间人员档案追寻系统设计与实现论文JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

操作系统实验5:信号量的实现与应用

写在最前的总结 下面的实验内容是在完整做完实验时候补充的,这里先把踩过的坑记录一下。 调试总结 先在Ubuntu上模拟生产者—消费者问题。这个实验分为两大部分,一个是实现信号量,另一个是验证信号量。对于第二个,建议先在Ubun…

银河麒麟 linux V10 安装JDK

1、安装JDK之前,先查看系统是否已安装JDK相关软件包: 2. 如果已经安装过,可以先卸载(可以跳过) 3. 下载并解压jdk包 # 将下载好的jdk压缩包解压到指定目录/usr/local/jdk8 mkdir /usr/local/jdk8 cp jdk-8u271-linu…

详解设计模式:享元模式

享元模式(Flyweight Pattern),是对象池的一种体现,也是 GoF 的 23 种设计模式中的一种结构型设计模式。 享元模式 主要用于减少创建对象的数量,以减少内存占用和提高性能。它提供了减少对象数量从而改善应用所需的对象…

[附源码]Python计算机毕业设计SSM跨移动平台的新闻阅读应用(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…