可视化正则表达式教程(1)

点赞再看,微信搜索**【大迁世界】关注这个没有大厂背景,但有着一股向上积极心态人。本文 GitHub https://github.com/qq449245884/xiaozhi 上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。

双12 A 里服务器27块,通用点击这里购买可以找我返现30,等于27块就能买到了,只限新用户,可以用家人的手机号购买!

在NLP中,根据模式检查文本或从文本中提取与特定模式匹配的内容是常见的任务。正则表达式是实现这一点的强大帮手。

NLP (Natural Language Processing) 是人工智能(AI)的一个子领域。

尽管功能强大,但是正则表达式经常令人生畏,因为它有许多我们需要记住的命令,而且在复杂的结构中,还需要有一定的逻辑能力。

在这篇文章中,主要用示图的方式来演示正则表达式的各种概念。 目的当然是帮助大家也包括我自己建立一个关于正则表达式的心智模型。

心智模型


我们先从一个简单的例子开始,在这个例子中,我们试图在文本中找到cool这个单词。

使用正则,我们只需输入单词'cool'作为模式,它就会匹配该单词。

‘cool’

正则表达式与我们期望的单词'cool'匹配时,它的操作方式不是单词级别而是字符级别,这是我们需要理清的一个点。

注意点:正则表达式在字符级别工作,而不是单词级别。

这意味着正则表达式'cool'也将与以下句子匹配。

基本构建基块


现在我们已经理解了关键点,接下来我们了解一下如何使用正则表达式匹配简单字符。

特定字符

我们可以在正则表达式中指定字符,它将匹配文本中的所有实例。

例如,下面给出的正则表达式将匹配文本中所有'a'实例:

‘a’

也可以使用从09的任何数字,来匹配数字。

‘3’

请注意,默认情况下,正则表达式区分大小写,因此以下正则表达式不匹配任何内容。

‘A’

空格字符

我们可以使用特殊的转义序列来检测特殊字符,例如空格和换行符。

除了上述常见的,我们还有:

  • \r 回车

  • \f 换页

  • \e 可执行模式

特殊字符

正则表达式提供了一堆内置的特殊字符,这些字符可以一次匹配一组字符,这些字符以反斜杠\开头。

模式:\d

它匹配09之间的数字。

注意,匹配项是一位数。 因此,我们在下面有4个不同的匹配项,而不是单个数字18.04

模式:\s

它匹配任何空格字符(空格、制表符或换行符)。

模式:\w

它匹配任何小写字母(az),大写字母(AZ),数字(09)和下划线。

模式:.

它匹配除换行符(\n)以外的任何字符。

let str = ‘line 1\nline2’

str.match(/./g)

// 结果:[“l”, “i”, “n”, “e”, " ", “1”, “l”, “i”, “n”, “e”, “2”]

模式:否定

如果我我们使用上述模式的大写形式,则表示他们否定的一面。

例如,如果\d匹配从09的任何数字,则\D将匹配09之外的任何数字。

字符集

字符集模式以[ 开始,以]结束,并匹配括号括起来的字符。例如,以下模式匹配任何字符'a', 'e', 'i', 'o''u'

我们也可以使用以下模式来代替\d的功能。

除了指定所有数字,我们还可以使用连字符合-仅需指定开始和结束数字。 因此,我们可以用[0-9]代替[0123456789]

例如,[2-4]可用于匹配24(即234)之间的任何数字。

我们可以在括号内使用上面讲的特殊字符。 例如,匹配09之间的任何数字或空白字符:

下面,列出了一些通用模式及其含义。

锚点

正则表达式还具有特殊的处理程序,以使模式仅在字符串的开头或结尾时才匹配。

我们只能使用 ^ 字符来匹配以指定开始的模式。例如

同样,我们可以在字符后使用$字符 ,表示以指定字符结尾。 例如:

转义元字符

考虑一种情况,我们要完全匹配单词 "Mr. Stark"

如果我们想用这样的格式 Mr. Stark 来匹配,那么它会产生意想不到的效果。因为我们知道.在正则表达式中有特殊的意义。

因此,如果我们想是精确匹配字符本身,则需要对特殊的元字符(如.$等)进行转义。

下面是元字符列表,如果直接使用它们,记住要对它们进行转义。

^ $ . * + ? { } [ ] \ | ( )

重复类


现在我们可以对任何字符进行模式匹配,接着,我们来接触较复杂一点的模式。

笨的方式来匹配重复字符

仅使用到目前为止所学的知识,幼稚的方法就是重复这种模式。 例如,我们可以通过重复字符级模式来匹配两位数字。

\d\d

量词

正则表达式提供特殊的量词来指定其前面字符的不同重复类型。

固定重复

我们可以使用{...}量词来指定模式应重复的次数。

例如,可以将先前用于匹配两位数字的模式修改为:

我们还可以使用相同的量词指定重复范围。 例如,要匹配2位数或者4位数字,可以使用以下模式:

总结

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

前端面试题汇总

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

JavaScript

性能

linux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值