首页 > 其他分享 >您唯一需要的 RegEx 指南

您唯一需要的 RegEx 指南

时间:2022-09-07 00:56:54浏览次数:96  
标签:RegEx 指南 匹配 字符 正则表达式 唯一 句法 输入

您唯一需要的 RegEx 指南

正则表达式是字符 模式 将文本中的字符序列关联起来。我们可以使用正则表达式来提取或替换部分文本,以及 HTML 页面中的地址或链接图像、修改文本格式或删除无效字符。

在本文中,我们将学习以下主题及更多内容:

  • 正则表达式的结构如何?
  • 正则表达式的元素是什么?
  • 如何在 Javascript 中使用正则表达式?
  • 奖金: 最有用的正则表达式备忘单

我们开工吧!

Photo by 布莱克康纳利 on 不飞溅

RegEx 的结构如何?

正则表达式基本上由 3 个组件组成:

  1. RegEx 本身,负责定义要匹配的模式
  2. 数据输入,构成将要经过正则表达式作用的数据
  3. 引擎,负责应用表达式

例如:假设我们需要一个 RegEx 验证电子邮件。 在这种情况下,我们将有以下组件:

  1. RegEx 将描述 有效电子邮件的模式
  2. 数据输入将是 电子邮件通知 由用户进行验证
  3. 引擎将是 编程语言 用于应用表达式

如何创建正则表达式?

正则表达式必须用斜线 (/) 括起来。并且在表达式之后,可能会有一些被调用的执行指示 旗帜 .

 /元字符/[标志]

标志用于为引擎提供执行正则表达式时使用的特殊参数。标志是可选的,将被执行正则表达式的引擎接受或拒绝。

最常见的标志是:

  • 我(忽略大小写) — 不应考虑大小写字符之间的差异。
  • g(全球来源) — 在数据输入时启用全局数据捕获,以及保存出现索引并允许在它们之间导航(即,如果您的输入多次匹配,使用此标志您将获得所有结果,否则只会返回第一个匹配项)
  • m(多行) — 通知条目由多行组成,从而将正则表达式应用于每一行。

什么是元字符?

元字符是在正则表达式中有意义的特殊字符。它们用于告诉引擎如何解析输入数据。正则表达式或 RegEx 由一组这些元字符组成。

每个元字符 服务于特定的功能 视情况而定。您可以创建许多组合并使用这些组合来执行更复杂的表达式。

让我们看看最常用的元字符:

开始 (^) 和结束 ($)

^(开始) — 表示正则表达式中的行首。句法: /^<....>/

$(结束) — 表示正则表达式中的行尾。句法: /<...>$/

示例 1:

  • 正则表达式: /^[1,9]/g
  • 输入: 0,1,2,3,4

这里 没有匹配 ,因为 RegEx 搜索的行 开始 字符介于 1 和 9 之间。

示例 2:

  • 正则表达式: /^[1,9]/g
  • 输入: 1,2,3,4,5
  • 火柴: 1

这里 有一场比赛 ,因为输入以数字 1 开头。

示例 3:

  • 正则表达式: /[1,9]$/g
  • 输入: 1,2,3,4,5
  • 火柴: 5

也是一场比赛 , 但使用行尾,所以它匹配数字 5。

字符组([ 和 ])

[(小组开始) — 表示字符组的开始。句法: /[<....>]/

](小组结束) — 表示字符组的结束。句法: /[<...>$]/

例子:

想象一下,我们想要获取名称为“John”的所有匹配项,无论它们是用大写字母还是小写字母书写的。然后我们需要告诉引擎第一个字符可以是“j”或“J”。

  • 正则表达式: /[J,j]ohn/g

  • 输入:

    约翰
    约翰
    约翰
    约瑟夫

  • 火柴: 约翰 , 约翰

点 (.)

. (通配符) — 表示任何其他字符。句法: /./

例子:

想象一下,我们想要获取所有有四个字母并以后缀“and”结尾的单词。

  • 正则表达式: /.和/g

  • 输入:


    相同的
    棍棒
    土地

  • 火柴: , 棍棒 , 土地

逻辑运算符 AND (.*)

(和)* — 在两个表达式之间进行逻辑运算 AND。句法: /<exp-1> .*<exp-2> /

例子:

想象一下,我们想要获取所有以元音开头和结尾的名字。

  • 正则表达式: /[AEIOU].*[aeiou]/g

  • 输入:

    阿米拉
    安娜
    劳拉
    苏菲
    奥利维亚

  • 火柴: 阿米拉 , 安娜 , 奥利维亚

逻辑运算符 OR (|)

| (或者) — 在两个表达式之间进行逻辑运算 OR。句法: _/ <exp-1> |<exp-2> /_

例子:

想象一下,我们想从数据输入中获取所有大型商店(超级商店或大型商店)。

  • 正则表达式: /^(super|mega)store/gm

  • 输入:

    超市
    小店
    大型商店

  • 火柴: 超市 , 大型商店

逻辑运算符 NOT (^)

^ (不是) — 在表达式之前进行逻辑运算 NOT。句法: _/[_ ^<exp> ] _/_

例子:

想象一下,我们想要获取所有不以元音开头的名称。

  • 正则表达式: /^[^AEIOU].*/gm

  • 输入:

    阿曼达
    山姆
    约翰
    安娜

  • 火柴: 山姆 , 约翰

花括号({ 和 })

{} (重复) — 允许您检测表达式在 n 次或范围内的重复。句法: _/ <exp> {最小,最大}/_

例子:

让我们编写一个表达式来获取所有包含 7 个字母并以结尾的单词 nd .

  • 正则表达式: /^.{7}nd*/gm

  • 输入:

    命令
    反弹
    芥末
    管理人员
    入站

  • 火柴: 命令 , 反弹 , 入站

加号 (+)

+(出现 1 次或多次) — 检查左边的字符是否在输入中至少出现一次。句法: _/ <exp> +/_

例子:

让我们编写一个表达式来获取所有出现的字符“c”。

  • 正则表达式: /a+/gm

  • 输入:

    音乐

    技术
    成功

  • 火柴: 穆斯 **C** , 这 **C** 技术学 , 他们是 **抄送** 埃斯

问号 (?)

? (0 或 1 次出现) — 检查左边的字符是否在输入中出现 0 或至少出现一次。使其成为可选。句法: _/ <exp> ?/_

例子:

想象一下,我们想要获得单数或复数形式的 car,但不要拼错。

  • 正则表达式: /^car[s]?$/gm

  • 输入:


    汽车
    卡兹

  • 火柴: , 汽车

星号 (*)

*(0 次或多次出现) — 检查左边的字符是否在输入中出现 0 次或多次。句法: _/ <exp> */_

例子:

想象一下,我们想要得到与这个人写的一样多的“y”这个词。

  • 正则表达式: /^嘿*$/gm

  • 输入:


    嘿嘿
    嘿嘿
    嘿嘿

  • 火柴: , 嘿嘿 , 嘿嘿

连字符 (-)

- (间隔) — 检查与字符间隔对应的匹配项。句法: _/[ <start> -<end> ]/_

例子:

想象一下,我们想要获取从字母 A 到 M 的所有名称。

  • 正则表达式: /^[上午].*$/gm

  • 输入:

    阿曼达
    内特

    克拉克

  • 火柴: 阿曼达 , , 克拉克

字母数字和非字母数字(\w 和 \W)

\w(字母数字) — 检查字母数字字符和下划线。句法: _/\w/_

\W(非字母数字) — 检查非字母数字字符(例如特殊字符)。句法: _/\W/_

例子:

  • 正则表达式: /\w/gm

  • 输入:

    测试
    1234
    测试_123
    测试$%测试
    $%&*&

  • 火柴: 测试 , 1234 , 测试_123 , **测试** $% **测试**

数字和非数字(\d 和 \D)

\d(数字) — 检查代表数字的字符。句法: _/\d/_

\D(非数字) — 检查非数字字符。句法: _/\D/_

例子:

  • 正则表达式: /\d/gm

  • 输入:

    123
    测试
    测试_123

  • 火柴: 123 , 测试_ **123**

空格和非空格(\s 和 \S)

\s(空格) — 检查对应于空格的字符(空格、制表符、换行符和回车符)。句法: _/\s/_

\S(非数字) — 检查非空格字符。句法: _/\S/_

捕获和非捕获组(“()”和“(?

标签:RegEx,指南,匹配,字符,正则表达式,唯一,句法,输入
From: https://www.cnblogs.com/amboke/p/16663868.html

相关文章

  • 开/关切换按钮 — 分步指南
    开/关切换按钮—分步指南HTML对于HTML,我们有一个圆圈,它在点击和“FF”文本时触发一个toggle()函数,它将变为“N”,反之亦然。<divclass="container"><divcla......
  • 浅析硬件“好声音”:麦克风技术指标及选型指南
     如今大多数IoT类设备都具有语音唤醒和声控的功能,如天猫精灵、百度音箱等。这类设备中都集成了麦克风和喇叭等电声器件,其中麦克风用于识别用户的声音,喇叭用于播放......
  • gorm如何支持软删除+联合唯一索引
    gorm默认支持软删除如果想要支持联合唯一索引,就需要用到一个gorm的插件库:gorm.io/plugin/soft_deleteBydefault,gorm.Modeluses*time.TimeasthevaluefortheDel......
  • Linux调度系统全景指南(上篇)
    导语:本文主要是讲Linux的调度系统,由于全部内容太多,分三部分来讲,调度可以说是操作系统的灵魂,为了让CPU资源利用最大化,Linux设计了一套非常精细的调度系统,对大多数场景都进......
  • Git权威指南 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1Ntz5qjWsx59xn9oGoqgL3w点击这里获取提取码《Git权威指南》是Git领域的集大成之作,是一本关于Git的百科全书,在广度、深度和实......
  • 【运营下班指南】有人准点下班,有人凌晨搬砖
    如何探寻用户流失原因并解决这个问题?HMSCore分析服务有答案。有效实现用户、营收双增长,或许早下班就不需要指南。了解更多详情>>访问华为开发者联盟官网获取开发指导......
  • 如何将 Figma 设计转换为 React 代码:分步指南⚛️
    如何将Figma设计转换为React代码:分步指南⚛️你想加速你的React.js应用程序开发吗?正是通过自动将您的设计转换为React组件!如果是,DhiWiseWeb应用程序构建器可以......
  • regex学习
    importrequestsimportreimportbase64r=requests.get('http://0de8b8a6-52a4-4b51-b991-b315b7a4ddf1.node4.buuoj.cn:81/?file=php://filter/read=convert.base......
  • HTML、CSS 和 JavaScript 中的所有唯一字符挑战
    HTML、CSS和JavaScript中的所有唯一字符挑战HTML:<divclass="wrapper"><h1>所有独特的字符</h1><br><p>来自<ahref="https://buttondown.email/cassidoo/ar......
  • [EN] React 项目开发指南 — Emre MUTLU
    [EN]React项目开发指南—EmreMUTLU你好,本指南包含开发应用程序时必须遵循的规则反应.本指南旨在确保不同人编写的代码相互兼容,并生成质量更高且错误更少的代码。......