正则表达式基础总结
·
Jun
什么是正则表达式
正则表达式简单来理解就是一个字符串,它可以看作一个规则.通过它我们可以提取一个文本中一些具有相同模式的字符串,或者验证所给字符串是否符合要求等. 比如我们想提取一个文件中所有的电话号码,或者前端判断所给数据,如身份证号码是否合法,有无少输等,这时候正则表达式便起到了很大作用.
元字符
元字符 | 含义 |
---|---|
. |
匹配任意单个字符除了换行符 |
* |
匹配>=0个重复的字符 |
+ |
匹配>=1个重复的字符 |
$ |
表示末尾 |
^ |
表示开头 |
` | ` |
? |
非贪婪匹配 |
\ |
转义字符,用于匹配一些保留的字符 |
(xyz) |
字符集,匹配与 xyz 完全相等的字符串 |
{m,n} |
匹配m到n个大括号之前的字符 |
字符集
我们可以用[]
来指定一个字符集,用连字符来指定字符集的范围
[a-z]
表示匹配所有小写字母[0-9]
表示匹配所有数字
否定字符集
^
用在字符集中的时候,表示否定的意思
[^0-9]表示匹配所有非数字
简写字符集
正则表达式内置了一些常用的字符集
名称 | 含义 |
---|---|
\w |
匹配所有字母数字 |
\W |
匹配所有非字母数字 |
\d |
匹配数字 |
\D |
匹配非数字 |
\n |
匹配一个换行符 |
\r |
匹配一个回车符 |
\t |
匹配一个制表符 |
\s |
匹配所有空格字符 |
\S |
匹配所有非空格字符 |
重复
*
表示重复次数大于等于0+
表示重复次数大于等于1?
表示重复次数为0或1{n}
表示重复n次,{m,n}
表示重复m到n次
特征标群
(...)
表示括号中的所有字符不可分割,而是作为一个整体参加匹配
常用正则表达式
邮箱
|
|
手机号码
|
|
域名
|
|
IP
|
|