概念
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。(来自维基百科)
它几乎在所有语言都可以使用,包括但不限于java,JavaScript,c#等都有提供想对应的接口/函数来支持。
基础语法
元字符
符号 | 含义 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的介绍 |
例子:
1.匹配9个任意数字的字符串: \d\d\d\d\d\d\d\d\d2.匹配aba开头,c结尾的字符串: ^aba.*c$复制代码
限定符
符号 | 含义 |
---|---|
+ | 重复1次或者更多次(包含1次,多次) |
* | 重复0次或者更多次(包含0次,1次,多次) |
? | 重复0次或者1次(包含0次,1次) |
{n} | 重复n次 |
{n,} | 重复n次或者更多次 |
{n,m} | 重复n到m次(长度范围) |
例子:
1.匹配9个任意数字的字符串: \d{9}2.匹配aba开头,多个c结尾的字符串: ^abac*$3.匹配银行卡号,14-18位数字: ^\d{14,18}$复制代码
其他符
符号 | 含义 |
---|---|
() | 分组符 |
\ | 转义符 |
| | 表示或 |
[] | 表示区间 |
例子:
1.匹配多个mar的字符串: ^(mar)*2.匹配多个(mar)的字符串: ^(\(mar\))*3.匹配13,15,17,18,19开头的手机号码: ^(13|15|17|18|19)\d{9}$4.匹配1-3开头的11位数字: ^[1-3]\d{10}$5.匹配13,15,17,18,19开头的手机号码: ^(13[0-9]|15[0-9]|17[0-9]|18[0-9]|19[0-9])\d{8}$复制代码