如何彻底搞懂面向 Web 开发者的正则表达式?
对于正则表达式,开发者如何跳出云里雾里的谜团?
作者 | Chris Achard
译者 | 弯月,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
以下为译文:
正则表达式能在字符串中查找匹配特定模式的子字符串。
在JavaScript中,可以通过斜线 / / 来创建,也可以通过new RegExp()来创建,然后就能使用match、test、replace等方法。你可以事先定义正则表达式,也可以在调用方法时随时定义。
每次匹配一个字符,将多个字符放到方括号 [] 中可以匹配多个匹配的字符。
用横线 - 匹配字符范围。
在正则表达式末尾添加额外的标记来修改匹配器的行为。
JavaScript支持如下标记:
i = 不区分大小写
m = 多行匹配
g = 全局匹配(查找所有匹配,而不是仅查找一个)
在模式开头使用箭头 ^ 表示“字符串开头”。
在模式末尾使用美元符号 $ 表示“字符串结尾”。
将多个模式放在一起以匹配更长的字符串。
使用通配符和特殊的转义字符来匹配字符类。
. = 除了换行之外的任何字符。
\d = 数字
\D = 非数字
\s = 空白
\S = 非空白
\n = 新行
用数量修饰符来匹配特定数量的字符。
- = 零个或多个
- = 一个或多个
?= 零个或一个
{3} = 正好3个
{2,4} = 2, 3, 或4个
{2,} = 2或多个
使用括号 () 来分组。
match会返回完整的匹配,外加每个分组,除非你使用了g标记。
在括号 () 内使用管道符号 | 来表示分组的匹配内容。
| = 或者
要匹配特殊字符,需要用反斜杠 \ 将其转义。
JS正则表达式中的特殊字符包括:^ $ \ . * + ? ( ) [ ] { } |
所以,要想匹配星号,需要使用:
*
而不能仅使用 *
要想匹配除了特定字符之外的任意字符,可以在方括号内使用^。
这意味着 ^ 有两种含义,可能会造成混淆。
当它出现在正则表达式开头时,它表示“字符串开头";出现在方括号内时,表示“不是这些字符串”。
正则表示可以用来查找并匹配各种东西,比如URL和文件名。
但是!对于非常复杂的任务,使用正则表达式时一定要小心,比如分析电子邮件(你很容易就会弄得一团糟),或者分析HTML(HTML不是正规的语言,所以没办法完全使用正则表达式来解析)。
当然,正则表达式还有更多内容,如懒惰 vs 贪婪,前向,捕获等。
但是,对于绝大多数Web开发者来说,掌握这些最基本的组成部分就够了。
原文:https://dev.to/chrisachard/intro-to-regex-for-web-developers-2fj4
作者:Chris Achard,程序员,日常使用JS, React, Rails和Node,在egghead.io上讲课。
本文为 CSDN 翻译,转载请注明来源出处。
【END】
热 文 推 荐
☞揭秘 OceanBase 勇夺 TPC 榜首的王者攻略!
☞如何简单粗暴地上手 TensorFlow 2.0?
☞国产嵌入式操作系统发展思考
☞国产数据库激荡 40 年
☞2019 年诺贝尔物理学奖揭晓!三得主让宇宙“彻底改观”!
☞【戳进来有福利】|【技巧帖】3个Tips提升云性能
☞人体姿态估计的过去、现在和未来
☞Python新工具:用三行代码提取PDF表格数据
点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
你点的每个“在看”,我都认真当成了喜欢
阅读原文
微信扫一扫
关注该公众号
如何彻底搞懂面向 Web 开发者的正则表达式?相关推荐
- js 正则 或者_如何彻底搞懂面向 Web 开发者的正则表达式?
对于正则表达式,开发者如何跳出云里雾里的谜团? 作者 | Chris Achard 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: 正则表达式能在字符串中查 ...
- 面向 Web 开发者的实用在线工具
大家可能还记得在过去的文章我们我们曾经介绍我们收集的前端开发人员必备的工具,脚本和资源,在今天的这篇文章中,我们将继续推荐给大家一组我们精挑细选的web开发设计必备的在线工具应用.相信会在web开发和 ...
- wpf ui框架_替代Silverlight:微软面向Web开发者推出Blazor新框架
Microsoft Silverlight将于2021年10月12日结束支持.尽管现阶段Silverlight依然受到微软的支持,但相关开发工作早在几年前就已经停止,而且仅支持IE 11浏览器.Sil ...
- 推荐几个面向 Web 开发者的杀手级网站
Random Image via API 世界上最强大的照片网站之一,Unsplash API是一个现代的JSON API,它提供了为用户构建任何体验所需的所有信息. 「网址:https://sour ...
- 一文搞懂【Web 前端】HTML 与 CSS 基础知识
摘要 一个 Web 页面是如何在浏览器上展示的?我们在浏览器上查看网页源代码,可看到众多的标签.符号和文字,这就是一个 HTML 文件,而浏览器可以将这个文件解析成一个 Web 页面.一个 Web 页 ...
- 【一次搞懂】JavaScript中的正则表达式
一.什么是正则表达式 正则表达式的概念: 计算机科学的一个概念.正则表达式通常被用来检索.替换那些符合某个模式(规则)的文本 在JS中,正则表达式属于对象的一种: typeof /\d+/ " ...
- 搞懂了这几点,你就学会了Web编程
做了那么多年Web编程,仔细想想, 其实本质上就那点事儿, 你抓住了几个重点问题, 学起来一点都不难. 1. 理解浏览器/服务器结构 (B/S) B/S 是从 90年代的客户端/服务器端发展而来, ...
- IntelliJ IDEA 部署 Web 项目,终于搞懂了!
IntelliJ IDEA 部署 Web 项目,终于搞懂了! 这篇牛逼:Java 程序员必备的 Intellij IDEA 插件 IDEA 中最重要的各种设置项,就是这个 Project Struct ...
- 一文彻底搞懂 Kotlin 中的委托 | 开发者说·DTalk
本文原作者: 码农西哥,原文发布于微信公众号: 技术最TOP https://mp.weixin.qq.com/s/BD1zT80IADDZS4CAxmooPg 什么是委托? 委托,也就是委托模式, ...
最新文章
- 用于半监督语义分割的基于掩码的数据增强
- 手工清理C:\windows\alg.exe病毒
- 高通被欧盟指控垄断 或将面临高达25亿美元罚款
- Vagrant 手册之 Provisioning - 基本用法
- 问题 H: 判断闰年
- 【恋上数据结构】图代码实现、BFS、DFS、拓扑排序
- 兰州大学2016年初试成绩基本要求
- 韦东山驱动视频笔记——6.输入子系统之编写驱动程序
- cl.exe is unable to create an executable file
- 艰难困苦,玉汝于成!
- 3GPP 首个5G标准
- sx1268 中文_SX1268原理图_SX1268芯片datasheet_SX1268数据手册_SX1268无线收发器模块_SX1268用户手册_一牛网...
- 2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛(baseline)
- Effects特效包之实现太阳耀斑及灯光耀斑特效
- 福州大学至诚学院计算机系,福州大学至诚学院计算机工程系
- 使用原生JavaScript做一个简单日历
- 河道水面漂浮物识别检测 YOLO算法详解
- 电商软件性能测试,实战 | 电商业务的性能测试(一): 必备基础知识
- 购买 MathType Academic操作流程
- Xshell启动报缺少msvcp110.dll和msvcr110.dll文件解决方法