正则表达式(Regex)基础

275 阅读2分钟

正则表达式(Regex)基础

正则表达式(Regex)是一种用于描述文本模式的工具,常用于字符串搜索、替换和验证。在计算机科学中,正则表达式是一种字符串匹配的工具,它通过一些特殊字符和语法规则来匹配文本中的模式。

正则表达式语法

正则表达式的语法规则是由一些特殊字符和语法组成的。这些特殊字符和语法可以用于匹配文本中的模式。

字符匹配

字符匹配是正则表达式的基础。在正则表达式中,可以使用普通字符或元字符来匹配文本中的字符。例如,正则表达式 cat 可以匹配字符串 "cat" 中的字符。

元字符

元字符是一些特殊字符,它们在正则表达式中有特殊的含义。一些常用的元字符如下所示:

  • .:匹配任意字符。
  • *:匹配前面的字符零次或多次。
  • +:匹配前面的字符一次或多次。
  • ?:匹配前面的字符零次或一次。
  • ^:匹配字符串的开头。
  • $:匹配字符串的结尾。
  • |:匹配两个或多个正则表达式中的任意一个。
  • ``:用于转义字符,使其具有普通含义。

字符集

字符集是一组字符,可以用于匹配文本中的一个字符。字符集用方括号括起来,例如 [abc] 可以匹配字符串中的 a、b 或 c。

量词

量词用于指定匹配的次数。例如,{n} 表示匹配前面的字符 n 次,{n,m} 表示匹配前面的字符至少 n 次,但不超过 m 次,{n,} 表示匹配前面的字符至少 n 次。

常见用途

正则表达式常用于以下场景:

验证输入

正则表达式可以用于验证用户输入是否符合某种格式要求,例如电话号码、邮箱地址、身份证号码等。

字符串搜索和替换

正则表达式可以用于在字符串中搜索特定的模式,并进行替换。例如,可以用正则表达式将一个字符串中的所有空格替换为连字符。

数据提取

正则表达式可以用于从文本中提取特定的数据。例如,可以用正则表达式从一个 HTML 文档中提取所有链接地址。

总结

正则表达式是一种强大的文本处理工具,它可以用于验证输入、搜索和替换字符串。

常用正则表达式

正则表达式(Regular Expression,简称为 Regex)是一种描述字符串规律的方式,可以用于文本处理、数据校验、搜索等场景。以下是一些常见的正则表达式,可以帮助开发人员更加高效地处理字符串操作。

手机号码检验正则

^1[3-9]\d{9}$

该正则表达式可以匹配符合中国大陆手机号码格式的字符串,以数字 1 开头,后面跟 10 位数字。其中第二位数字为 3~9 之间的任意数字。

匹配邮箱地址

^\w+([-+.]\w+)*@\w+([-.]\w+)*.\w+([-.]\w+)*$

该正则表达式可以匹配符合邮件地址格式的字符串,包括用户名和域名两部分,中间用 @ 符号连接。用户名由字母、数字和下划线组成,可以包含 -.;域名由字母、数字和减号组成,可以包含多个域名段,最后一个域名段可以是 2~6 个字母。

匹配网址 URL

^(http|https|ftp)://[^\s]+$

该正则表达式可以匹配符合 URL 格式的字符串,包括协议和地址两部分,中间用 :// 符号连接。协议部分可以是 http、https 或 ftp,地址部分可以是域名或 IP 地址。

匹配中文字符

[\u4e00-\u9fa5]

该正则表达式可以匹配一个中文字符。

匹配连续的空格

\s+

该正则表达式可以匹配一个或多个连续的空格,包括空格、制表符和换行符。

匹配非数字字符

\D

该正则表达式可以匹配任意非数字字符,等价于 [^0-9]

匹配非空字符

\S

该正则表达式可以匹配任意非空字符,等价于 [^ \t\r\n\f]

匹配年月日格式的日期

\d{4}-\d{2}-\d{2}

该正则表达式可以匹配符合年月日格式的日期字符串,例如 2022-04-18

匹配邮政编码

\d{6}

该正则表达式可以匹配符合中国大陆邮政编码格式的字符串,包含了 6 个数字。

匹配整数

^-?\d+$

该正则表达式可以匹配一个整数,包括正整数、负整数和 0。