正则表达式
英文:Regular Expression,在代码中常简写为regex、regexp或RE,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
什么是正则表达式:
1、正则表达式是由一个字符序列形成的搜索模式
2、当你在文本检索数据时,你可以用搜索模式来描述你要查询的内容
3、正则表达式可以是一个简单的字符 或一个更复杂的模式
4、正则表达式可以用于所有文本搜索和文本替换的操作
语法:/正则表达式/修饰符(可选)
方括号
表达式 作用
[abc] 查找方括号之间的任何字符
[^abc] 查找任何不在方括号之间的字符
[0-9] 查找任何从0至9的数字
[a-z] 查找任何从小写a到小写z的字符
[A-Z] 查找任何从大写A到大写Z的字符
[A-z] 查找任何从大写A到小写z的字符
正则表达式的修饰符:
修饰符 简介
i 忽略大小写
g 全局匹配
m 多行匹配
预定义字符集:
字符 作用
.(点) 查找单个字符,出了换行和行结束符
\w 查找单词字符
\W 查找非单词字符
\d 查找数字
\D 查找非数字字符
\s 查找空白字符
\S 查找非空白字符
\b 匹配单词边界
\B 匹配非单词边界
\n 查找换行符
\f 查找换页符
\r 查找回车符
\t 查找制表符
量词
量词 作用
n+ 匹配任何包含至少一个n的字符串 ,多了不限制
n* 匹配任何包含零个或多个n的字符串 (可有可无,多了不限制)
n? 匹配任何包含零个或一个n的字符串 (可有可无,最多一次)
{n} 必须出现n次
{n,} 必须最少出现两次,多了不限制
{n,m} 最少出现n次,最多出现m次
n$ 匹配任何结尾为n的字符串
^n 匹配任何开头为n的字符串(还有一种取非用法:[^xxx] 除了xxx以外的)
?=n 匹配任何其后紧接指定字符串n的字符串
?!n 匹配任何其后没有紧接指定字符串n的字符串
正则表达式的API:
conmpile:编译正则表达式
exec:(检索字符串中指定的值,返回找的值,并确定位置)
test:检索字符串中指定的值。返回true和false
常用的正则表达式:
常用的正则 作用
Email地址 ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名 [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
InternetURL [a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
18位身份证号码 ^((\d{18})|([0-9x]{18})|([0-9X]{18}))$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线) ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线) ^[a-zA-Z]\w{5,17}$
日期格式 ^\d{4}-\d{1,2}-\d{1,2}
中文字符 [\u4e00-\u9fa5]
空白行(可以用来删除空白行) \n\s*\r
首尾空白字符(可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等) ^\s*|\s*$或(^\s*)|(\s*$)
qq号 [1-9][0-9]{4,}
中国邮政编码 [1-9]\d{5}(?!\d)
IP地址 \d+\.\d+\.\d+\.\d+
|
|