
可视化正则表达式教程
分享一套阿里大牛整理的前端资料给大家,点击前端校招面试题精编解析大全即可下载够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**[外链图片转存中…(img-0yzTpXdm-1711693051394)][外链图片转存中…(img-LvmorLWP-1711693051395)]既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前
正则表达式与我们期望的单词'cool'
匹配时,它的操作方式不是单词级别而是字符级别,这是我们需要理清的一个点。
注意点:正则表达式在字符级别工作,而不是单词级别。
这意味着正则表达式'cool'
也将与以下句子匹配。
现在我们已经理解了关键点,接下来我们了解一下如何使用正则表达式匹配简单字符。
特定字符
我们可以在正则表达式中指定字符,它将匹配文本中的所有实例。
例如,下面给出的正则表达式将匹配文本中所有'a'
实例:
‘a’
也可以使用从0
到9
的任何数字,来匹配数字。
‘3’
请注意,默认情况下,正则表达式区分大小写,因此以下正则表达式不匹配任何内容。
‘A’
空格字符
我们可以使用特殊的转义序列来检测特殊字符,例如空格和换行符。
除了上述常见的,我们还有:
-
\r
回车 -
\f
换页 -
\e
可执行模式
特殊字符
正则表达式提供了一堆内置的特殊字符,这些字符可以一次匹配一组字符,这些字符以反斜杠\
开头。
模式:\d
它匹配0
到9
之间的数字。
注意,匹配项是一位数。 因此,我们在下面有4个不同的匹配项,而不是单个数字18.04
。
模式:\s
它匹配任何空格字符(空格、制表符或换行符)。
模式:\w
它匹配任何小写字母(a
到z
),大写字母(A
到Z
),数字(0
到9
)和下划线。
模式:.
它匹配除换行符(\n
)以外的任何字符。
let str = ‘line 1\nline2’
str.match(/./g)
// 结果:[“l”, “i”, “n”, “e”, " ", “1”, “l”, “i”, “n”, “e”, “2”]
模式:否定
如果我我们使用上述模式的大写形式,则表示他们否定的一面。
例如,如果\d
匹配从0
到9
的任何数字,则\D
将匹配0
到9
之外的任何数字。
字符集
字符集模式以[
开始,以]
结束,并匹配括号括起来的字符。例如,以下模式匹配任何字符'a'
, 'e'
, 'i'
, 'o'
和 'u'
。
我们也可以使用以下模式来代替\d
的功能。
除了指定所有数字,我们还可以使用连字符合-
仅需指定开始和结束数字。 因此,我们可以用[0-9]
代替[0123456789]
:
例如,[2-4]
可用于匹配2
到4
(即2
或3
或4
)之间的任何数字。
我们可以在括号内使用上面讲的特殊字符。 例如,匹配0
到9
之间的任何数字或空白字符:
下面,列出了一些通用模式及其含义。
锚点
正则表达式还具有特殊的处理程序,以使模式仅在字符串的开头或结尾时才匹配。
我们只能使用 ^
字符来匹配以指定开始的模式。例如
同样,我们可以在字符后使用$
字符 ,表示以指定字符结尾。 例如:
转义元字符
考虑一种情况,我们要完全匹配单词 "Mr. Stark"
。
如果我们想用这样的格式 Mr. Stark
来匹配,那么它会产生意想不到的效果。因为我们知道.
在正则表达式中有特殊的意义。
因此,如果我们想是精确匹配字符本身,则需要对特殊的元字符(如.
、$
等)进行转义。
下面是元字符列表,如果直接使用它们,记住要对它们进行转义。
^ $ . * + ? { } [ ] \ | ( )
现在我们可以对任何字符进行模式匹配,接着,我们来接触较复杂一点的模式。
笨的方式来匹配重复字符
仅使用到目前为止所学的知识,幼稚的方法就是重复这种模式。 例如,我们可以通过重复字符级模式来匹配两位数字。
\d\d
量词
正则表达式提供特殊的量词来指定其前面字符的不同重复类型。
固定重复
我们可以使用{...}
量词来指定模式应重复的次数。
例如,可以将先前用于匹配两位数字的模式修改为:
我们还可以使用相同的量词指定重复范围。 例如,要匹配2
位数或者4
位数字,可以使用以下模式:
当应用于句子时,它将同时匹配4位数字和2位数字。
注意 最小和最大计数之间不应该有任何空格,例如,
\d{2, 4}
不工作。
灵活的量词
正则表达式还提供了量词*
,+
和?
使用它可以指定字符的灵活重复。
?
字符表示匹配 0 次或者 一次
例如,假设我们想匹配单词“sound”
和“sounds”,其中“s”是可选的。我们可以使用?
量词。
+
字符表示匹配 一 次或者多次
例如,我们可以使用正则 \d+
找到任意长度的数字。
*
字符表示匹配 0 次或者多次
Python在标准库中提供了一个名为"re"
的模块来使用正则表达式。
对原始字符串的需求
要在Python中指定正则表达式,我们在r之前创建原始字符串
pattern = r’\d’
为了理解为什么我们在前面加上r
,我们尝试打印不带**r**
的表达式\t
。
pattern = ‘\t’
print(pattern)
可以看到,当我们不使用原始字符串时,字符串\t
在Python中被视为制表符的转义字符。
现在我们把它转换成原始字符串,我们会得到我们指定的任何东西
pattern = r’\t’
print(pattern)
\t
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后
分享一套阿里大牛整理的前端资料给大家,点击前端校招面试题精编解析大全即可下载
❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。
够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-0yzTpXdm-1711693051394)]
[外链图片转存中…(img-LvmorLWP-1711693051395)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-YFFmmeAB-1711693051395)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后
分享一套阿里大牛整理的前端资料给大家,点击前端校招面试题精编解析大全即可下载
❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。
更多推荐
所有评论(0)