正则表达式是一种描述文本模式的规则集合。通过使用特定的语法和规则,正则表达式可以匹配文本中的特定字符组合。它广泛应用于各种编程语言和工具中,如 JavaScript、Python、Perl、Java 以及文本编辑器等。
正则表达式的概念起源于20世纪50年代,由美国数学家斯蒂芬·科尔·克莱尼(Stephen Cole Kleene)提出,用于描述正则语言(regular language)。1968年,Ken Thompson 在实现早期 Unix 的搜索工具 ed 时引入了正则表达式,这一技术逐渐被广泛应用于计算机科学和软件开发中。
正则表达式由普通字符(例如字母和数字)和特殊字符(也称为元字符)组成。元字符具有特殊的含义,用于构建复杂的模式。以下是一些常见的元字符:
. :匹配任意一个字符(除换行符外)^ :匹配行的开头$ :匹配行的结尾* :匹配前一个字符零次或多次+ :匹配前一个字符一次或多次? :匹配前一个字符零次或一次[] :匹配字符集中的任意一个字符| :表示“或”操作():用于分组,匹配括号内的模式\ :转义字符,用于匹配元字符本身匹配单个字符:
aa。匹配字符集:
[abc]a、b 或 c 中的任意一个字符。匹配范围:
[a-z]a 到 z 的任意一个小写字母。匹配零次或多次:
a*a,即可以匹配空字符串、a、aa 等。匹配一次或多次:
a+a,即可以匹配 a、aa 等,但不匹配空字符串。匹配零次或一次:
a?a,即可以匹配空字符串或 a。匹配行的开头:
^aa 开头的行。匹配行的结尾:
a$a 结尾的行。分组:
(abc)abc,并将其作为一个组。“或”操作:
a|ba 或 b 中的任意一个字符。电子邮件地址验证:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$电话号码验证:
^\d{3}-\d{3}-\d{4}$123-456-7890 的电话号码。URL 验证:
^(https?|ftp)://[^\s/$.?#].[^\s]*$http、https 或 ftp 开头的 URL。