- ? 表示前面的字符可选。
- +表示一个或多个。
- *表示0个或多个。
- [] 字符组或字符集 匹配方括号里限定的字符集。字符组简写式 \d=[0-9] 匹配任意阿拉伯数字。
- \D =[^0-9]匹配任意的非数字字符 。
- \w 这个简写式将匹配所有的单词字符。\D与\w的区别是\D会匹配空格、标点符号(引号、连字符、反斜杠、方括号)等字符,而\w却不会,它只匹配字母、数字和下划线。等同于字符组[_a-zA-Z0-9]。
- \W 匹配非单词字符,匹配空格、标点以及其他非字母、非数字字符。等同于字符组[^_a-zA-Z0-9]
- \s 匹配空白字符=[ \t\n\r]它会匹配:
•空格 •制表符(\t) •换行符(\n) •回车符(\r) - \S 匹配非空白字符
- .英文句号,是一个通配符可以匹配任意字符(但某些情况下不能匹配行起始符)。
- {} 包含数字的花括号是一种量词(quantifier)。花括号本身用做元字符。表示字符出现的次数。
- ^ 脱字符,表示匹配的字符串会出现在一行的起始位置。
- $ 美元符$匹配一行结束位置。
- () 一对圆括号表示捕获分组。
- \1 表示后向引用。
例如先将一个\d放在一对圆括号中,这样就将它放入了一个分组中,
后面可以用\1来对捕获的内容进行后向引用:
(\d)\d\1
\1对括号内分组捕获的内容进行了反向引用。例如这个正则表达式可以匹配707,而不能匹配706。
例子
1、(\d{3}[.-]?){2}\d{4}
这个表达式匹配的字符串是连续两个无括号的三位数字,每三位数字后可以带连字符也可以不带,最后是一个四位数字
2、((\d{3})|\d{3}[.-]?)?\d{3}[.-]?\d{4}$
- 出现在正则表达式起始位置或者竖线(|)之后的脱字符^,表示匹配的字符串会出现在一行的起始位置;
- 左括号(为捕获分组的起始符;
- (表示左括号本身;
- \d匹配一位数字;
- \d之后的{3}是量词,表示匹配三位数字;
- )匹配右括号本身
- 竖线符|表示选择,也就是从多个可选项中选择一个,换句话说,
它表示“匹配一个不带括号的字符串或一个带括号的字符串”; - 脱字符^匹配行起始位置;
- \d匹配一位数字;
- {3}是表示匹配三位数字的量词;
- [.-]?匹配一个可选的点号或连字符;
- 右括号)为捕获分组的结束符;
- 问号?表示分组可选,即分组中的前缀可有可无;
- \d匹配一位数字;
- {3}表示匹配三位数字的量词;
- [.-]?匹配另一个可选的点号或连字符;
- \d匹配一位数字;
- {4}是表示匹配四位数字的量词;
- 美元符$匹配行结束位置。