正则表达式语法

字符 说明
^ 匹配字符输入的开始
$ 匹配字符输入的结束
\d 数字字符, 等效于[0-9]
\s 匹配任何空白字符,包括空格、制表符、换页符等
\S 匹配任何非空白字符
{n} 正好匹配n次
{n,} 至少匹配n次
{n, m} n<=m, 匹配至少n次,至多m次
() 标记一个子表达式的开始和结束位置。子表达式可以供以后使用
* 零次或多次匹配前面的字符或子表达式, 等效于{0,}
+ 一次或多次匹配前面的字符或子表达式,等效于{1,}
? 零次或一次匹配前面的字符或子表达式,等效于 {0,1}
. 匹配除”\r\n”之外的任何单个字符
| 或的关系
\un 匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符。例如,\u00A9 匹配版权符号 (©)。
\w 匹配任何字类字符,包括下划线。与”[A-Za-z0-9_]”等效
[\u4e00-\u9fa5] 匹配中文字符

常见示例

以Java写法为例, 其他语言类似:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//只能输入n到m位的数字
String regex = "^\\d{n,m}$"

//只能输入英文字母和数字
String regex = "^[A-Za-z0-9]+$";

//只能输入数字
String regex = "^[0-9]+$";

//11位数字
String regex = "\\d{11}";

//中文字符
String regex = "[\\u4e00-\\u9fa5]";

//匹配任意字符且长度为1到5位
String regex = "[\\s\\S]{1,5}";

//匹配任意ascii码中字符且长度为1到5位
String regex = "[\\x00-\\x7F]{1,5}";

//只要出现一次月份即可,例如 hu01jk, 11klo
String regex = ".*([0-1][0-9])+.*";