python爬虫之正则表达式

字符

符号描述
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线(word)
\s匹配任意的空白符(space)
\d匹配数字(digital)
\n匹配一个换行符
\t匹配一个制表符
\b匹配一个单词的结尾
^匹配字符串的开始,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 $。
\W匹配非字母或数字或下划线
\D匹配非数字
\S匹配非空白符
ab
()匹配括号内的表达式,也表示一个组
[…]匹配字符组中的字符
[^…]匹配除了字符组中字符的所有字符

[字符组]

符号描述
[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模块部分将在后面介绍
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值