如何彻底搞懂面向 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 文章。

你点的每个“在看”,我都认真当成了喜欢
阅读原文

微信扫一扫
关注该公众号

专为程序员设计的数学课

11-11
<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>
©️2020 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值