【译】JavaScript 开发者的正则表达式系列篇(2)

如何匹配正则表达式中的文字字符和字符集

什么是正则表达式中的文字字符?

文字字符是可以在测试字符串中显示时匹配的字符。它们可以是字母、数字、空格,甚至是符号。换句话说,它们是代表自己的非特殊字符。

这意味着如果要匹配文字字符,则应以与测试字符串显示相同的方式构造正则表达式模式。

例如,如果要匹配单词 hello ,则正则表达式模式可以是 hello 。如果你想匹配单词 hatch 中的 h,你只需要作为模式 h

这将 h 匹配测试字符串 h hatch 中字母的第一次出现。如果您希望它也与其他字母 h 匹配,则需要"g"标志或全局标志。您将在本书的下一章中了解标志和修饰符。

但是,某些符号的情况并非如此。这是因为某些符号是正则表达式(元字符和量词)的特殊字符。因此,如果要匹配这些字符,则必须使用反斜杠 ( \ ) 对它们进行转义。这本书还将教你所有你需要知道的关于元角色的知识,因为有一整章关于它们。

如何在正则表达式测试器中匹配文字字符

如果你想匹配单词 hello ,那么 hello 应该是你的正则表达式模式:

如果你想匹配文本 freeCodeCamp ,你可以构造你的正则表达式 freeCodeCamp 为:

如果要匹配文本 freeCodeCamp 中的字母 e , e 是要使用的模式:

如果您想匹配文本填充中的 h,则 h 是您应该使用的模式:

您可以看到,在文本中的freeCodeCamp中,第一个出现后的其他e没有被返回为匹配项,与单词hatch中的最后一个h一样。在下一章中,您将学习如何匹配文本中每个字母的每个出现。

可以在 regex101.com/ 上自行尝试。

字符集匹配

字符集(也称为字符类)是一组字符,可以成功匹配测试字符串中的某个字符。这组字符被括在方括号内。

例如,模式[abc]将匹配a、b和c中的任何一个,而[xyz]将匹配x、y和z中的任何一个。

以下是一些字符集示例以及它们的作用:

  • [abc]:匹配a 、 b 或 c中的任何一个
  • [aeiou]:匹配任何元音字符
  • [a-z]:匹配从a到z的任何小写字母
  • [A-Z]:匹配从A到Z的任何大写字母
  • [0-9]:匹配从 0 到9的任何数字

在方括号内,您不需要转义元字符,因为它们失去了特殊含义。唯一在方括号内具有含义的符号是连字符(-),您可以使用它来指定范围,就像我在一些字符集示例中所做的那样。

您将在本书中了解有关范围的信息。在某些情况下,反斜杠\在字符集中不会失去其特殊含义。

与文字字符匹配一样,只有字符集的第一个出现会返回为匹配项,其他每个出现都将被忽略。在下一章中,您将学习如何使用g标志匹配字符的多个出现。

以下是如何在正则表达式测试工具中使用上述每个字符集的示例:

[abc]: [abc] :

[aeiou]: [aeiou] :

[a-z]: [a-z] :

[A-Z]: [A-Z] :

[0-9]: [0-9] :

您还可以根据需要定义唯一的字符类。当您想要匹配文本中特定位置的某些字符时,字符集非常有用。

例如,模式 br[ao]ke 将同时 brake 匹配和 broke :

该模式 gr[ae]y 将匹配两者 gray grey 和:

注意: 我打开了 g 标志,这样你可以看到所有的匹配,以及字符集有多强大。在下一章中,我们将研究 g 和其他标志。

由于编程中总是有多种完成相同任务的方式,也有一些称为"简写字符集"的字符集,您可以使用它们来代替字符集。

由于这些简写字符集是元字符的一个子集,您将在专门介绍元字符的章节中学习有关它们的内容。

在线工具

参考文献

相关推荐
treasure1409 小时前
【复古】浅尝Django前后端不分离
前端·css·python·django·bootstrap·html·web
jay神11 小时前
基于 YOLOv8 的手势识别系统(Web 版)
前端·人工智能·python·深度学习·yolo·计算机视觉·计算机毕业设计
屏什么录11 小时前
长时间录屏中途崩溃:MP4 打不开的 6 种救回方案与参数设置
前端·音视频开发
code_Bo11 小时前
不只命令行:我把跨 Agent 会话同步做成了桌面应用
前端·javascript·后端
kyriewen11 小时前
AI 能把页面写出来,为什么改个需求就开始崩?
前端·javascript·人工智能
OpsEye11 小时前
同一套用例跑两个大模型接口,差异到底出在哪
javascript·ai编程
X1A0RAN12 小时前
PPT 图片批量处理教程:导出全部幻灯片 · 提取全部素材
开发语言·javascript·powerpoint
涛涛ing12 小时前
2026年最值得关注的前端变化,藏在“默认值”里
前端
量化分析码农13 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
亿元程序员14 小时前
太牛了!这AI做出来的游戏,居然还能变现!
前端