对于正则表达式,开发者如何跳出云里雾里的谜团?

作者 | Chris Achard

译者 | 弯月,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:

正则表达式能在字符串中查找匹配特定模式的子字符串。

在JavaScript中,可以通过斜线 / / 来创建,也可以通过new RegExp来创建,然后就能使用match、test、replace等方法。你可以事先定义正则表达式,也可以在调用方法时随时定义。

每次匹配一个字符,将多个字符放到方括号 中可以匹配多个匹配的字符。

用横线 - 匹配字符范围。

在正则表达式末尾添加额外的标记来修改匹配器的行为。

JavaScript支持如下标记:

  • i = 不区分大小写

  • m = 多行匹配

  • g = 全局匹配(查找所有匹配,而不是仅查找一个)

在模式开头使用箭头 ^ 表示“字符串开头”。

在模式末尾使用美元符号 $ 表示“字符串结尾”。

将多个模式放在一起以匹配更长的字符串。

使用通配符和特殊的转义字符来匹配字符类。

. = 除了换行之外的任何字符。

  • d = 数字

  • D = 非数字

  • s = 空白

  • S = 非空白

  • = 新行

用数量修饰符来匹配特定数量的字符。

  • * = 零个或多个

  • + = 一个或多个

  • ?= 零个或一个

  • {3} = 正好3个

  • {2,4} = 2, 3, 或4个

  • {2,} = 2或多个

使用括号 来分组。

match会返回完整的匹配,外加每个分组,除非你使用了g标记。

在括号 内使用管道符号 | 来表示分组的匹配内容。

  • | = 或者

要匹配特殊字符,需要用反斜杠 将其转义。

JS正则表达式中的特殊字符包括:^ $ . * + ? { } |

所以,要想匹配星号,需要使用:

  • *

  • 而不能仅使用 *

要想匹配除了特定字符之外的任意字符,可以在方括号内使用^。

这意味着 ^ 有两种含义,可能会造成混淆。

当它出现在正则表达式开头时,它表示“字符串开头";出现在方括号内时,表示“不是这些字符串”。

正则表示可以用来查找并匹配各种东西,比如URL和文件名。

但是!对于非常复杂的任务,使用正则表达式时一定要小心,比如分析电子邮件(你很容易就会弄得一团糟),或者分析HTML(HTML不是正规的语言,所以没办法完全使用正则表达式来解析)。

但是,对于绝大多数Web开发者来说,掌握这些最基本的组成部分就够了。

原文:https://dev.to/chrisachard/intro-to-regex-for-web-developers-2fj4

作者:Chris Achard,程序员,日常使用JS, React, Rails和Node,在egghead.io上讲课。

本文为 CSDN 翻译,转载请注明来源出处。

【END】

js 正则 或者_如何彻底搞懂面向 Web 开发者的正则表达式?相关推荐

  1. 如何彻底搞懂面向 Web 开发者的正则表达式?

    对于正则表达式,开发者如何跳出云里雾里的谜团? 作者 | Chris Achard 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: 正则表达式能在字符串中查 ...

  2. wpf ui框架_替代Silverlight:微软面向Web开发者推出Blazor新框架

    Microsoft Silverlight将于2021年10月12日结束支持.尽管现阶段Silverlight依然受到微软的支持,但相关开发工作早在几年前就已经停止,而且仅支持IE 11浏览器.Sil ...

  3. 组件化开发实战_一篇文章搞懂什么是前端“组件化”开发

    学过网页的朋友都知道,制作一个网页离不开HTML.CSS和JavaScript技术.对于初学者来来说,掌握这3门技术就已经很不容易了,为什么前端为什么又要搞出来一个"组件化"开发的 ...

  4. reactrouter监听路由变化_一篇文章搞懂前端路由原理解析和实现方式

    在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大的路由功能,导致路由实现变的复杂. 想要搞懂路由内部实现还是有些困难的,但是如果只想了解路由实现基本原理 ...

  5. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  6. c++ 计算正弦的近似值_一篇文章搞懂正弦保真性

    本文介绍数字信号处理中"正弦保真性"这一概念,想要更好地理解本文所述内容,建议读者先阅读<一篇文章搞懂卷积>. 正弦保真性定义 一个正弦信号作为线性时不变系统的输入时, ...

  7. 单行溢出隐藏没生效_至今没搞懂,为什么这个缸这么火?

    [首先] 用主石-火山岩来做个隐藏的过滤 看看这块火山岩的各个角度 火山石隐藏过滤制作开始 第一步50mm钻头开孔 (好像听到了耳膜挣扎的呐喊) 40mm钻头再次掘进 30mm钻头再次掘进 用12mm ...

  8. C++两个函数可以相互递归吗_[算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进

    [算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进 从学习写代码伊始, 总有个坎不好迈过去, 那就是遇上一些有关递归的东西时, 看着简短的代码, 怎么稀里糊涂就出来了. ...

  9. pythonxpath定位_一文搞懂 XPath 定位

    一文搞懂XPath 定位 XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历. XPath定位在爬虫和自动化测试中 ...

最新文章

  1. php怎么读取图片并输出,php读取图片内容并输出到浏览器的实现代码_PHP教程
  2. poj 1284 Primitive Roots(原根+欧拉函数)
  3. MySQL慢查询日志的配置与使用_MySQL 慢查询日志的开启与配置
  4. 恒安标准人寿:念好小公司数据保护生意经
  5. oracle sqlplus conn 远程连接
  6. itstime后面跟什么_被父母当成摇钱树是种什么体验?
  7. 作者:郭雷风,中国农业科学院农业信息研究所助理研究员。
  8. 直播丨探究Oracle多租户架构
  9. Java 连接 SQL Server 数据库
  10. 数据库 | PostgreSQL从入门到精通
  11. 有没有不收费的恢复数据软件下载 分享人性化数据恢复工具
  12. win10锁屏账户和计算机名,如何玩转Win10锁屏和主题
  13. 使用别名(就像我们自己的小名)
  14. 三菱je -c中映射表的作用_最新款中东版三菱帕杰罗V93 现车热卖
  15. 蚁群算法(详解)python
  16. 使用appium进行app自动化测试时遇到AppActivity设置正确但报Connect Appium Server Fail.A new session could not be created
  17. UVA10881 Piotr‘s Ants
  18. 行为识别论文笔记|TSN|Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
  19. Google地球影像下载及导航软件
  20. Reversing:逆向工程揭密pdf

热门文章

  1. rhel5之光盘更新终结篇
  2. Flume实战采集文件内容存入HDFS
  3. oracle中的(+)
  4. quick time不可用_那些校园中“不可言说”的鄙视链
  5. 小学数学动画 android,小学数学动画教学下载-小学数学动画 安卓版v5.0-pc6手机下载...
  6. python判断点在矩形内_判断平面内矩形和圆是否有交点的python实现
  7. 人形机器人正在美国史密森尼博物馆中担任导游的工作
  8. aio nio aio_AIO的完整形式是什么?
  9. Java即时类| plus()方法与示例
  10. Python | 在列表中指定索引处添加元素的程序