js 正则 或者_如何彻底搞懂面向 Web 开发者的正则表达式?
对于正则表达式,开发者如何跳出云里雾里的谜团?
作者 | 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 开发者的正则表达式?相关推荐
- 如何彻底搞懂面向 Web 开发者的正则表达式?
对于正则表达式,开发者如何跳出云里雾里的谜团? 作者 | Chris Achard 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: 正则表达式能在字符串中查 ...
- wpf ui框架_替代Silverlight:微软面向Web开发者推出Blazor新框架
Microsoft Silverlight将于2021年10月12日结束支持.尽管现阶段Silverlight依然受到微软的支持,但相关开发工作早在几年前就已经停止,而且仅支持IE 11浏览器.Sil ...
- 组件化开发实战_一篇文章搞懂什么是前端“组件化”开发
学过网页的朋友都知道,制作一个网页离不开HTML.CSS和JavaScript技术.对于初学者来来说,掌握这3门技术就已经很不容易了,为什么前端为什么又要搞出来一个"组件化"开发的 ...
- reactrouter监听路由变化_一篇文章搞懂前端路由原理解析和实现方式
在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大的路由功能,导致路由实现变的复杂. 想要搞懂路由内部实现还是有些困难的,但是如果只想了解路由实现基本原理 ...
- python语言语句快的标记是什么_一文搞懂Python程序语句
原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...
- c++ 计算正弦的近似值_一篇文章搞懂正弦保真性
本文介绍数字信号处理中"正弦保真性"这一概念,想要更好地理解本文所述内容,建议读者先阅读<一篇文章搞懂卷积>. 正弦保真性定义 一个正弦信号作为线性时不变系统的输入时, ...
- 单行溢出隐藏没生效_至今没搞懂,为什么这个缸这么火?
[首先] 用主石-火山岩来做个隐藏的过滤 看看这块火山岩的各个角度 火山石隐藏过滤制作开始 第一步50mm钻头开孔 (好像听到了耳膜挣扎的呐喊) 40mm钻头再次掘进 30mm钻头再次掘进 用12mm ...
- C++两个函数可以相互递归吗_[算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进
[算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进 从学习写代码伊始, 总有个坎不好迈过去, 那就是遇上一些有关递归的东西时, 看着简短的代码, 怎么稀里糊涂就出来了. ...
- pythonxpath定位_一文搞懂 XPath 定位
一文搞懂XPath 定位 XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历. XPath定位在爬虫和自动化测试中 ...
最新文章
- php怎么读取图片并输出,php读取图片内容并输出到浏览器的实现代码_PHP教程
- poj 1284 Primitive Roots(原根+欧拉函数)
- MySQL慢查询日志的配置与使用_MySQL 慢查询日志的开启与配置
- 恒安标准人寿:念好小公司数据保护生意经
- oracle sqlplus conn 远程连接
- itstime后面跟什么_被父母当成摇钱树是种什么体验?
- 作者:郭雷风,中国农业科学院农业信息研究所助理研究员。
- 直播丨探究Oracle多租户架构
- Java 连接 SQL Server 数据库
- 数据库 | PostgreSQL从入门到精通
- 有没有不收费的恢复数据软件下载 分享人性化数据恢复工具
- win10锁屏账户和计算机名,如何玩转Win10锁屏和主题
- 使用别名(就像我们自己的小名)
- 三菱je -c中映射表的作用_最新款中东版三菱帕杰罗V93 现车热卖
- 蚁群算法(详解)python
- 使用appium进行app自动化测试时遇到AppActivity设置正确但报Connect Appium Server Fail.A new session could not be created
- UVA10881 Piotr‘s Ants
- 行为识别论文笔记|TSN|Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
- Google地球影像下载及导航软件
- Reversing:逆向工程揭密pdf
热门文章
- rhel5之光盘更新终结篇
- Flume实战采集文件内容存入HDFS
- oracle中的(+)
- quick time不可用_那些校园中“不可言说”的鄙视链
- 小学数学动画 android,小学数学动画教学下载-小学数学动画 安卓版v5.0-pc6手机下载...
- python判断点在矩形内_判断平面内矩形和圆是否有交点的python实现
- 人形机器人正在美国史密森尼博物馆中担任导游的工作
- aio nio aio_AIO的完整形式是什么?
- Java即时类| plus()方法与示例
- Python | 在列表中指定索引处添加元素的程序