Python爬虫01:匹配单个字符

  • 内容
  • 相关

正则表达式 - 匹配单个字符

目标

  • 知道正则表达式里面的.、[]、\d对应的功能描述

在上一小节中,了解到通过re模块能够完成使用正则表达式来匹配字符串

本小节,将要讲解正则表达式的单字符匹配

代码 功能
. 匹配任意1个字符(除了\n)
[ ] 匹配[ ]中列举的字符
\d 匹配数字,即0-9
\D 匹配非数字,即不是数字
\s 匹配空白,即 空格,tab键
\S 匹配非空白
\w 匹配非特殊字符,即a-z、A-Z、0-9、_、汉字
\W 匹配特殊字符,即非字母、非数字、非汉字

示例1: .

#coding=utf-8 import re

ret = re.match(".","M")
print(ret.group())

ret = re.match("t.o","too")
print(ret.group())

ret = re.match("t.o","two")
print(ret.group()) 

运行结果:

M
too
two 

示例2:[]

import re # 如果hello的首字符小写,那么正则表达式需要小写的h ret = re.match("h","hello Python") 
print(ret.group()) # 如果hello的首字符大写,那么正则表达式需要大写的H ret = re.match("H","Hello Python") 
print(ret.group()) # 大小写h都可以的情况 ret = re.match("[hH]","hello Python")
print(ret.group())
ret = re.match("[hH]","Hello Python")
print(ret.group())
ret = re.match("[hH]ello Python","Hello Python")
print(ret.group()) # 匹配0到9第一种写法 ret = re.match("[0123456789]Hello Python","7Hello Python")
print(ret.group()) # 匹配0到9第二种写法 ret = re.match("[0-9]Hello Python","7Hello Python")
print(ret.group())

ret = re.match("[0-35-9]Hello Python","7Hello Python")
print(ret.group()) # 下面这个正则不能够匹配到数字4,因此ret为None ret = re.match("[0-35-9]Hello Python","4Hello Python") # print(ret.group()) 

运行结果:

h
H
h
H
Hello Python 7Hello Python 7Hello Python 7Hello Python 

示例3:\d

import re # 普通的匹配方式 ret = re.match("嫦娥1号","嫦娥1号发射成功") 
print(ret.group())

ret = re.match("嫦娥2号","嫦娥2号发射成功") 
print(ret.group())

ret = re.match("嫦娥3号","嫦娥3号发射成功") 
print(ret.group()) # 使用\d进行匹配 ret = re.match("嫦娥\d号","嫦娥1号发射成功") 
print(ret.group())

ret = re.match("嫦娥\d号","嫦娥2号发射成功") 
print(ret.group())

ret = re.match("嫦娥\d号","嫦娥3号发射成功") 
print(ret.group()) 

运行结果:

嫦娥1号
嫦娥2号
嫦娥3号
嫦娥1号
嫦娥2号
嫦娥3

示例4:\D

import re

match_obj = re.match("\D", "f") if match_obj: # 获取匹配结果 print(match_obj.group()) else:
    print("匹配失败") 

运行结果:

f 

示例5:\s

import re # 空格属于空白字符 match_obj = re.match("hello\sworld", "hello world") if match_obj:
    result = match_obj.group()
    print(result) else:
    print("匹配失败") # \t 属于空白字符 match_obj = re.match("hello\sworld", "hello\tworld") if match_obj:
    result = match_obj.group()
    print(result) else:
    print("匹配失败") 

运行结果:

hello world
hello world 

示例6:\S

import re

match_obj = re.match("hello\Sworld", "hello&world") if match_obj:
result = match_obj.group()
print(result) else:
print("匹配失败")



match_obj = re.match("hello\Sworld", "hello$world") if match_obj:
result = match_obj.group()
print(result) else:
print("匹配失败") 

运行结果:

hello&world  
hello$world 

示例7:\w

 import re # 匹配非特殊字符中的一位 match_obj = re.match("\w", "A") if match_obj: # 获取匹配结果 print(match_obj.group()) else:
    print("匹配失败") 

执行结果:

A 

示例8:\W

# 匹配特殊字符中的一位 match_obj = re.match("\W", "&") if match_obj: # 获取匹配结果 print(match_obj.group()) else:
    print("匹配失败") 

执行结果:

& 

思考

匹配密码中的其中一位,密码是由字母、数字、下划线组成,请列举的方式匹配?

您阅读这篇文章共花了:  

本文标签:

版权声明:转载请带上版权原创为《星城

解压密码:若设有密码均为:www.xcooo.cn

收录状态:百度已收录点击查看详情

Python爬虫01:匹配单个字符

发表评论

您可以选择匿名评论,保护个人隐私 !