返回

技术周报 · 2021-03-05

前端


正文

正则表达式

正则表达式 (英语:Regular Expression,在代码中常简写为regex、regexp或RE),又称正规表示法、正规表达式,计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式的文本。很多工具都支持正则表达式,例如:grep、awk、sed等。

正则表达式的基本概念

元字符 :元字符是指在正则表达式中具有特殊意义的专用字符,可以用它们来规定其前面的子表达式匹配的行为。

元字符 说明
. 匹配除换行符(\n、\r)之外的任何单个字符。
^ 匹配字符串的开始。
$ 匹配字符串的结尾。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。
? 匹配前面的子表达式零次或一次。
[] 匹配指定范围内的字符。
[^] 匹配指定范围外的字符。
` `

量词 :量词用于指定前面的子表达式出现的次数。

量词 说明
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。
? 匹配前面的子表达式零次或一次。
{n} 匹配前面的子表达式n次。
{n,} 匹配前面的子表达式n次或更多次。
{n,m} 匹配前面的子表达式n到m次。

分组 :分组用于将正则表达式划分为子表达式,以便对它们进行引用或操作。

分组 说明
() 将其内的子表达式括起来,形成一个组。
(?P<name>) 将其内的子表达式括起来,并为其指定一个名称。

引用 :引用用于引用前面定义的子表达式。

引用 说明
\1 引用第一个子表达式。
\2 引用第二个子表达式。
\n 引用第n个子表达式。

示例

以下是一些正则表达式的示例:

^Hello\s+World!$

该正则表达式匹配以“Hello World!”开头的字符串。

[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+

该正则表达式匹配电子邮件地址。

<a href="http://[^"]+">.*?</a>

该正则表达式匹配HTML链接。

正则表达式的应用

正则表达式可以用于各种各样的任务,例如:

  • 文本搜索
  • 文本替换
  • 数据验证
  • 数据提取
  • 代码生成

总结

正则表达式是一种强大的工具,可以用于处理各种各样的文本数据。掌握正则表达式,可以提高你的开发效率,让你用一种快捷的方式读取或控制你的数据。

参考资料

欢迎订阅本博客,持续关注技术周报。