字符
符号 | 描述 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线(word) |
\s | 匹配任意的空白符(space) |
\d | 匹配数字(digital) |
\n | 匹配一个换行符 |
\t | 匹配一个制表符 |
\b | 匹配一个单词的结尾 |
^ | 匹配字符串的开始,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。 |
$ | 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 $。 |
\W | 匹配非字母或数字或下划线 |
\D | 匹配非数字 |
\S | 匹配非空白符 |
a | b |
() | 匹配括号内的表达式,也表示一个组 |
[…] | 匹配字符组中的字符 |
[^…] | 匹配除了字符组中字符的所有字符 |
[字符组]
符号 | 描述 |
---|---|
[0123456789] | 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配 |
[0-9] | 也可以用-表示范围,[0-9]就和[0123456789]是一个意思 |
[a-z] | 同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示 |
[A-Z] | [A-Z]就表示所有的大写字母 |
[0-9a-fA-F] | 可以匹配数字,大小写形式的a~f,用来验证十六进制符 |
量词
符号 | 描述 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
贪心匹配与非贪心匹配
.* 贪婪匹配模式 ,匹配尽可能多的
.*?非贪婪匹配模式,只匹配的第一个满足的就行
边界匹配
^匹配字符串的开始,在多行模式中匹配每一行的开头
$匹配字符串的结尾,在多行模式中匹配每一行的结尾
正则表达式的示例应用
- 验证用户名和密码:("^[a-zA-Z]\w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位
- 验证电话号码:("^(\d{3,4}-)\d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
- 验证手机号码:"^1[3|4|5|7|8][0-9]{9}$";
- 验证身份证号(15位或18位数字):"\d{14}[[0-9],0-9xX]";
- 验证Email地址:("^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$");
- 只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$");
- 整数或者小数:^[0-9]+([.][0-9]+){0,1}$
- 只能输入n位的数字:"^\d{n}$"
- 只能输入至少n位的数字:"^\d{n,}$"。
- 只能输入m~n位的数字:"^\d{m,n}$"。
- 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
- 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
- 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
- 只能输入非零的正整数:"^+?[1-9][0-9]*$"。
- 只能输入非零的负整数:"^-[1-9][0-9]*$"。
- 只能输入长度为3的字符:"^.{3}$"。
- 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
- 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
- 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
- 验证是否含有^%&’,;=?$“等字符:”[%&’,;=?$\^]+"。
- 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"。
- 验证URL:"^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$"。
- 验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:“01"~"09"和"10"~"12”。
- 验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;“01"~"09”、"10"~"29"和“30”~“31”。
- 获取日期正则表达式:\d{4}[年|-|.]\d{\1-\12}[月|-|.]\d{\1-\31}日?
评注:可用来匹配大多数年月日信息。 - 匹配空白行的正则表达式:\n\s*\r
- 匹配首尾空白字符的正则表达式:^\s*|\s*$
- 匹配ip地址:([1-9]{1,3}.){3}[1-9]。
python爬虫之re模块部分将在后面介绍