06Python爬虫---正则表达式01之原子

原子:正则表达式中最基本的组成单位,每个正则表达式中至少包含一个原子,原子有以下几类

(1)普通字符作为原子
(2)非打印字符作为原子
(3)通用字符作为原子
(4)原子表

(1)普通字符作为原子
import re

pattern = "yue"

string = "http://yum.iqianyue.com"

result = re.search(pattern, string)

print("普通字符作为原子结果:%s"%result)

# 普通字符作为原子结果:<_sre.SRE_Match object; span=(16, 19), match='yue'>
(2)非打印字符作为原子

  非打印字符指的事一些字符串中用于格式控制的符号,比如换行符
   \n 匹配一个换行符 \t匹配一个制表符

import re

pattern = "\n"

string = """http://www.baidu.com

http://yum.iqianyue.com"""

result = re.search(pattern, string)

print("非打印字符作为原子结果:%s"%result)

# 非打印字符作为原子结果:<_sre.SRE_Match object; span=(20, 21), match='\n'>
(3)通用字符作为原子

一个原子可以匹配一类字符

字母意义
/w匹配任意一个字母、数字或者下划线
/W匹配除字母、数字和下划线意外的任意一个字符
/d匹配仍以一个十进制数
/D匹配除十进制数意外的任意一个其他字符
/s匹配任意一个空白字符
/S匹配除空白字符意外的任意一个其他字符

例子:’\w\dpython\w’对 ‘python’字符进行匹配,字符最后一个是字母、数字或下划线,字符前一位是任意的十进制数,再前一位置是一个字母数字或下划线的格式字符串,如’67python8’,’u2python_’

import re

pattern = "\w\dpython\w"

string = "abcdfphp345python_py"

result = re.search(pattern, string)

print("通用字符作为原子结果:%s"%result)

# 通用字符作为原子结果:<_sre.SRE_Match object; span=(9, 18), match='45python_'>
(4)原子表

  定义一组地位平等的原子,然后匹配的时候会取该原子表中的任意一个原子进行匹配。
  在Python中,原子表由[]表示,比如[xyz],就是一个原子表,这个原子表中定义了3个原子,这3个原子的地位平等。
例子:
(1)定义了表达式’[xyz]py’,对应的源字符串是’xpython’,如果此时使用re.search()函数进行匹配,就可以匹配出结果’xpy’,因此只要py前一位是xyz字母中的其中一个字母就可以匹配成功。
(2)类似的[^]代表的事除了中括号里面的原子均可以匹配,比如’[^xyz]py’能匹配’apy’,但不能匹配’xpy’

import re

pattern1 = "\w\dpython[xyz]\w"

pattern2 = "\w\dpython[^xyz]\w"

pattern3 = "\w\dpython[xyz]\W"

string = "abcdfphp345pythony_py"

result1 = re.search(pattern1, string)

result2 = re.search(pattern2, string)

result3 = re.search(pattern3, string)

print("结果1:%s"%result1)  # 结果1:45pythony_

print("结果2:%s"%result2)  # 结果2:None 没有匹配成功所以都为none

print("结果3:%s"%result3)  # 结果3:None
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值