前言
提到正则表达式,很多不太懂的朋友在需要用正则校验数据时,往往是在网上找很久,最后找来的还是不符合要求。正则表达式是繁琐的,但其实也是很强大的,学会之后,能大大提高你的工作效率。在日常的开发中,了解一些常用的正则表达式还是很有必要的!
简介
正则表达式(Regular Expression也称为REs,或regexes或regex patterns)是一种文本模式,包括普通字符(例如,"a" 到 "z" 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。本质上是一个微小且高度专业化的编程语言。
正则表达式能做什么
正则表达式的主要应用对象是文本,使用正则表达式可以指定想要匹配的字符串规则,然后通过这个规则来匹配、查找、替换或切割那些符合指定规则的文本。总体来讲,正则表达式可以对指定的文本实现以下功能:
- 匹配验证: 判断给定的字符串是否符合正则表达式所指定的过滤规则,从而可以判断某个字符串的内容是否符合特定的规则(如email地址、手机号码等);当正则表达式用于匹配验证时,通常需要在正则表达式字符串的首部和尾部加上^和$,以匹配整个待验证的字符串
- 查找与替换: 判断给定字符串中是否包含满足正则表达式所指定的匹配规则的子串,如查找一段文本中的所包含的IP地址。另外,还可以对查找到的子串进行内容替换
- 字符串分割与子串截取: 基于子串查找功能还可以以符合正则表达式所指定的匹配规则的字符串作为分隔符对给定的字符串进行分割
正则表达式,简单地说,就是用来提取文本信息的,即从不规则的文本信息中匹配很有规律的信息,它可以用来校验,比如:手机号,邮箱等,也可以用来检索和查询。
特殊字符
单个字符匹配
说明: 所有的特殊字符在[ ]内都将失去其原有的特殊含义:
- 有些特殊字符在[ ]中被赋予新的特殊含义,如 '^'出现在[ ]中的开始位置表示取反,它出现在[]中的其他位置表示其本身(变成了一个普通字符)
- 有些特殊字符则变为普通字符,如 '.', '*', '+', '?', '$'
- 有的普通字符变为特殊字符,如 '-' 在[ ]中的位置不是第一个字符则表示一个数字或字母区间,如果在[ ]中的位置是第一个字符则表示其本身(一个普通字符)
- 在[ ]中,如果要使用'-', '^' 或']',可在在它们前面加上反斜杠,或把'-', ']'放在第一个字符的位置,把'^'放在非第一个字符的位置