正则表达式 - Regular Expression

COMSOL电磁仿真案例——感应线圈 COMSOL电磁建模仿真案例——感应线圈 阅读详情

认识正则表达式 - Regular Expression

目的:验证字符串是否符合规则
是一个复杂数据类型


正则表达式的创建
  • 正则表达式的创建
    1、字面量方式创建
    语法:var reg = /内容/
    2、内置构造函数创建
    语法:var reg = new RegExp(’ 内容 ')

正则表达式的常用方法
  • 正则表达式的常用方法
    1、匹配
    目的:检测对错
    语法:正则表达式.test(字符串)
    返回值:一个布尔值
    如果字符串满足正则表达式规则,那么返回true 否则返回 false
    2、捕获
    目的:从原始字符串中截取符合正则表达式规则的部分字符串片段

正则表达式的组成

文本内容
元字符:在正则表达式内用一个符号来表示一类内容
标识符

  • 基本元字符
    1、\d 表示 一位 数字
    2、\D 表示 一位 非数字
    3、\s 表示 一位 空白内容(空格,缩进)
    4、\S 表示 一位 非空白内容
    5、\w 表示 一位 数字字母下划线任意内容
    6、\W 表示 一位 非数字字母下划线的任意内容
    7、. 表示 一位 非换行的任意内容
    8、\ 表示 转义符

字符串
  • 字符串
  • 在字符串内, \ 也是表示转义符
  • 在字符串内书写 \s 这个内容, 相当于把没有意义的 s 文本转换成有意义的符号
    => 但是字符串内没有 \s 这个符号规则
    => 字符串就会默认把它解析为 s 文本
  • 在你使用内置构造函数方式创建正则表达式的时候
    => 第一个参数是以字符串的形式书写正则内容
    => 当你在字符串内书写 ‘\s’ 的时候, 因为字符串规则, 会把他解析为 ‘s’
    => 给到正则的内容就是 ‘s’
    => 组装出来的就是 /s/
  • 在你使用内置构造函数方式创建正则表达式的时候
    => 第一个参数是以字符串的形式书写正则内容
    => 当你在字符串内书写 ‘\s’ 的时候, 因为字符串规则, 第一个 \ 是把 第二个 \ 转义了
    => 就会在字符串内留下一个 斜线 和 s 文本
    => 当你把这个内容当做第一个参数写入的时候
    => 出来的正则就是 /\s/

边界元字符
  • 边界元字符
    1、^ 表示字符串开始(开头)
    2、$ 表示字符串结束(结尾)
    注意:当 ^ 和 $ 一起使用的时候,表示 从开始 到结束
    没有 ^ 和 $ 叫做 包含
    有 ^ 和 $ 叫做 只能

限定元字符
  • 限定元字符
    概念:一个限定符只能修饰前面一个符号
    1、* 表示重复出现 0~正无穷次
    2、+ 表示重复出现1~正无穷次
    3、? 表示重复出现0~1次
    4、{n} 表示重复出现n次
    5、{n, } 表示重复出现n~正无穷次
    6、{n, m} 表示重复出现n~m次

特殊元字符
  • 特殊元字符
    1、()
    含义1:一个整体
    含义2:单独捕获 (在下面单独写)
    2、|
    或者
    一般和 () 连用
    只有 () 和 ^ 和 $ 能区分或的边界
    3、[ ]
    注意:一个 [ ] 只占一个字符位置
    书写在 [ ] 内的任意一个字符都行
    4、[ ^ ]
    注意:一个 [ ] 只占一位字符位置
    书写在 [ ^ ] 内的任意一个字符都不行
    5、中划线(-)
    表示 至 或者 到
    一般和 [ ] 连用
    注意:必须保证ASCII 码是连续的、
    特殊: \u4e00-\u9fa5 所有中文

重复元字符
  • 重复元字符
    1、\1 \2 \3 \4 \5 \6 \7 \8 \9
    重复出现
    需要第n个() 出现的内容一摸一样
    注意:不是重复几次,是重复第几个小括号

预查元字符
  • 预查元字符
    1、正向肯定预查
    (?=内容)真实正则内容
    2、正向否定预查
    (?!内容)真实正则内容
    3、负向肯定预查
    (?<=内容)真实正则内容
    4、负向否定预查
    (?!=内容)真实正则内容

标识符
  • 标识符
    书写在正则外面,正则的后面
    用来修饰整个正则表达式使用的
    1、g 全局标识符 global
    2、i 忽略大小写 ignore

捕获
  • 捕获
    语法:正则.exec (字符串)
    返回值:
    1、原始字符串内没有符合正则要求的字符串片段
    返回值就是 null
    2、原始字符串内有符合正则要求的字符串片段
    返回值是一个数组类型数据,[0]位置就是从字符串内捕获出来的内容
    2.1、正则没有() 没有全局标识符 g
    返回值数组只有[0]数据
    不管捕获多少次,正则都是从原始字符串开始位置进行检索
    2.2、正则有()
    返回值数组[0]依旧是捕获出来的完整字符串片段
    从[1]开始依次是每一个小括号的单独内容捕获
    2.3、正则有g
    返回的数组[0]依旧是捕获出来的完整字符串片段
    但是从第二次开始,会从第一次捕获结束位置开始检索
    以此类推,直到找不到了为止,返回null
    在下一次又从字符串开始位置进行检索
    -匹配但不捕获
    ( ?: )

正则的两大特性

1、懒惰性
当捕获内容的时候,每一都会默认从字符串的开头开始检索
解决方案:加一个全局标识符 g
2、贪婪性
贪婪匹配 尽可能多的捕获
非贪婪匹配 尽可能少的捕获
解决方案:使用非贪婪限定符

贪婪匹配  指的都是 限定符
    + 贪婪限定符
      => *
      => +
      => ?
      => {n,}
      => {n,m}
    + 非贪婪限定符
      => *?
      => +?
      => ??
      => {n,}?
      => {n,m}?

创建方式的区别

1、书写标识符的区别
字面量:直接书写在正则的后面

const reg = /adcd/gi

内置构造函数:以第二个参数的形式书写

const reg = new RegExp('abcd','gi')

2、拼接变量的能力
字面量方式不能进行变量拼接
内置构造函数可以拼接,因为内置构造函数的第一个参数是一个字符串型数据
3、书写基本元字符
字符量:/\s\d\w/
内置构造函数:new Regexp(’\s\d\w’)


字符串常用方法
  • 字符串常用方法
    1、replace()
    语法:
    字符串.replace(换下字符,换上字符)
    字符串.replace(正则表达式,换上字符)
    返回值:替换好的字符串
    当传递的是正则表达式,并且带有 g 标识符的时候,会全部替换
    2、search()
    语法:
    字符串.search(字符串片段)
    字符串.search(正则表达式)
    返回值:
    如果有该字符串片段,就是该字符串片段的开始索引位置
    如果没有该字符串片段,就是 -1
    3、match()
    语法:
    字符串.match(字符串片段)
    字符串.match(正则表达式)
    返回值:
    当参数传递字符串片段,或者没有 g 的正则表达式的时候,和exec 一摸一样
    当参数传递正则表达式,并且有全局标识符 g 的时候,返回值是一个数组,里面是捕获到的所有内容
具身智能的建模和方法(具身智能入门一) 本文以机械臂将小红方块移动到目标位置为例对具身智能的建模和方法进行介绍,如下图所示,该例子来自https://ai-workshops.github.io/building-and-working-in-environments-for-embodied-ai-cvpr-2022/。 阅读详情

相关推荐

RedVQA:轻量级无参考视频质量评估算法原理与工程实践

视频质量评估是计算机视觉领域的关键技术,旨在通过算法自动量化视频的观看体验。其核心原理在于模拟人眼视觉系统,从像素数据中提取并融合空域和时域特征,以预测主观质量分数。这项技术的价值在于,它能自动化处理海量视频内容的质量监控,为流媒体服务、移动设备影像优化等场景提供关键指标。无参考视频质量评估作为该领域的前沿方向,无需原始无损视频作为参考,更贴合实际应用。本文以RedVQA项目为例,深入剖析了如何利用轻量化的深度网络架构,如MobileNetV3,结合高效的时空特征融合模块,在保证评估精度的同时,大幅降低计算

weixin_28698129的博客 548

正则表达式Regular Expression)

概念:常用于替换、修改符合某种模式的文本。 特点:1,灵活性强;2,极简方式控制复杂字符串 java中的正则表达式:其为String类型,被验证内容也是String类型,被验证字符使用match方法与正则表达式匹配,返回一个boolean变量。 语法: (1)一般形式 【内容限定】{长度限定}//长度限定可以不给,默认为1 【a-z0-9】表示内容为a-z或0-9的数字,不分先后 【^abc】表示内容不能为a或b或c {最小长度,最大长度}表明长度必须在这两个数之间,如{0,}表明最小为0,

small_py_trade的博客 598

第51节:cesium 范围查询(含源码+视频)

cesium 范围查询

qq_29384639的博客 1478

Regular Expression语法

Regular Expression功能 正则表达式描述了一种字符串匹配模式(pattern), 通过该模式可以用来: 检查一个串是否含有某种子串; 将匹配的子串替换; 从某个串中取出符合某个条件的子串等。 Regular Expression基本构成 正则表达式是由普通字符(例如字符 a到z)以及特殊字符(称为"元字符")组成的文字模式; 正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合; 使用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表

mn3321的博客 584

正则表达式Regular Expression)基本概念及理解

正则表达式Regular Expression正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。 正则表达式是由普通字符(例如字符 a 到 z)以及特殊

X1nZz的博客 4849

正则表达式(Regular Expression)

使用测试方法 在编程语言中,正则表达式用于匹配指定的字符串。 通过正则表达式创建匹配模式(规则)可以帮你完成指定匹配。 如果想要在字符串 The dog chased the cat 中匹配到 the 这个单词,可以使用如下正则表达式:/the/。 注意,正则表达式中不需要引号。 JavaScript 中有多种使用正则表达式的方法。 测试正则表达式的一种方法是使用 .test() 方法。 .test() 方法会把编写的正则表达式和字符串(即括号内的内容)匹配,如果成功匹配到字符,则返回 true,反之,返回

kiku 1956

正则表达式Regular Expression)基础使用、贪婪性、懒惰性以及常用方法

正则表达式Regular Expression正则表达式是处理字符串的规则 正则表达式只能处理字符串 test => 它是一个规则,验证某个字符串是否符合某规则 exec/match => 捕获字符串里面符合规则的内容捕获出来 所以学习正则就是为了创造规则 let str = "abcdefg"; let reg = /\d+/; // 创建规则来判断 reg.test(str) // => false // 捕获 str = "2020-10-15"; reg.exec(str

weixin_44044238的博客 845

10. Regular Expression Matching 正则表达式匹配

题目:Regular Expression Matching 正则表达式匹配 难度:困难 Given an input string (s) and a pattern (p), implement regular expression matching with support for'.'and'*'. '.' Matches any single character. '*' ...

qq_21963133的博客 547

Regular Expression 正则表达式-3 (C++)

最后用C++实现了一把,因为STL中尚未包含Regular Expression,因此我使用了Boost中的Regex++。不过因为不是很熟悉,所以代码很蹩脚,将就看了。呵呵。#include #include #include #include using namespace std; void readFile( const char* filename, string

DanceFire的专栏 3173

正则表达式Regular expression

Ⅰ. 简介 正则表达式(regular expression)是一种字符串匹配模式或者规则,它可以用来检索、替换那些符合特定规则的文本。正则表达式几乎适用于所有编程语言,无论是前端语言 JavaScript,还是诸如许多后端语言,比如 Python、Java、C# 等,这些语言都提供了相应的函数、模块来支持正则表达式,比如 Python 的 re 模块就提供了正则表达式的常用方法。 Ⅱ. 正则表达式语法 1) 元字符 正则表达式元字符 元字符 匹配内容 . 匹配除换行符以外的任

noobiee的博客 1234

正则表达式 regular expression

1、正则表达式的语法模块:普通字符、特殊字符、标准字符集、自定义字符集、量词表达式、零宽表达式; 2、常用几种正则表达式; 3、java中使用正则表达式

lintiddler的博客 2388

正则表达式Regular Expression

什么是 RegExp? RegExp 是正则表达式的缩写。  正则表达式regular expression)描述了一种字符串匹配的模式。可以用来: (1)检查一个串中是否含有符合某个规则的子串,并且可以得到这个子串; (2)根据匹配规则对字符串进行灵活的替换操作 正则表达式在线测试网站,https://regexper.com/  通过该网站,可以通过图形

雷新伟的博客 445

Rad Software Regular Expression Designer 正则表达式工具软件

Rad Software Regular Expression Designer 正则表达式工具软件 Rad Software Regular Expression Designerhttp://www.radsoftware.com.au/regexdesigner/ pos...

weixin_30409849的博客 161

oracle regular expression,Oracle SQL 正则表达式regular expression

在oracle数据库当中有字符处理的函数,比如substr()、replace()和instr(),当然也有做字符匹配的操作符like,不过这些函数和操作符在处理一些复杂的字符串时,会显得有些力不从心。从oracle10g开始,Oracle内建了符合IEEE POSIX (Portable Operating Systemfor Unix)标准的正则表达式。当然oracle也支持perl的正则表达...

weixin_34363835的博客 320

正则表达式Regular Expression

正则表达式Regular Expression)是一种强大的文本处理工具,用于快速高效地执行复杂字符串操作,如搜索、替换、分割等。它使用一种特殊语法来描述需要匹配的字符序列或模式,从而在文本中定位和处理这些特定模式。

Zhang_DonL的博客 1097

Regular Expression正则表达式

为您收集了常用的正则表达式Regular Expression),程序开发中,经常用到的正则表达,方便您快速使用,节省宝贵的时间,提高程序开发效率,以下正则表达式经过多次测试,并不断增加,因为不同程序或工具的正则表达式略有区别,大家可以根据需要进行简单修改使用。正则表达式有多种不同的风格。用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

云博客_资源宝分享 1041

正则表达式regular expression详述

正则表达式regular expression,看来英文比中文要好理解多了,就是检查表达式符 不符合规定!!正则表达式有一个功能十分强大而又十分复杂的对象RegExp,在Javascript1.2 版本以 上提供。 下面我们看看有关正则表达式的介绍: 正则表达式对象用来规范一个规范的表达式(也就是表达式符不符合特定的要求,比如是不是Email 地址格式等),它具有用来检查给出的字符串是否符合

一辈子的孤单 1142

正则表达式 Regular Expression

重新整理记录一下正则规则 定义 Regular Expression - 正规的/有规律的表达式,是计算机科学的一个概念。使用一个字符串来描述、匹配一系列符合某个句法规则的字符串 最初这个概念是由Unix中的工具软件如sed和grep普及开的,通常简写为regex 几乎所有操作系统以及编程语言中都有正则表达式的应用 引擎 正则引擎主要分为两大类: DFA NFA P

「有且仅有」 2342

Python正则表达式Regular Expression初探

Python的re模块提供了完整的正则表达式功能。正则表达式Regular Expression)是一种强大的文本模式匹配工具,它能高效地进行查找、替换、分割等复杂字符串操作。在Python中,通过importre即可引入这一神器。

汉阳Hann's Home 2768

正则表达式基础 Regular Expression

正则表达式基础 Regular Expression 正则表达式简介   n  为什么需要正则表达式? q  文本的复杂处理。 n  正则表达式的优势和用途? q  一种强大而灵活的文本处理工具; q  提供了一种紧凑的、动态的方式,能够以一种完全通用的方式来解决各种字符串处理(例如:验证、查找、替换等)问题; q  大部分语言[d1] 、数据库都支持正则表达式。 n  正则表达

daiyy0921的专栏 4637

BQ76952中文资料.pdf

适用于锂离子、锂聚合物和磷酸铁锂电池的 3 节至 16 节串联高精度电池监控器和保护器

基于STM32F103C8T6、ESP8266WiFI、Onenet云端、安卓APP的智能灯光控制系统

基于STM32F103C8T6、ESP8266WiFI、Onenet云端、安卓APP的智能灯光控制系统目录解说:androidContorl 是APP工程。stm32Project 是32单片机的工程,包括初始化ESP8266连接和接收模式。

上一篇: ES6 - 模块化语法
下一篇: Node-基础
Jason_Huo-
博客等级 码龄8年 2粉丝 48原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值