怎样使用正则表达式匹配信息?

1.描述:什么是正则表达式?
正则表达式是指描述字符串排列的一套规则,换一句话说,正则表达式是为了匹配我们需要的数据,而过滤掉没用的信息。例如我们需要在网页上查找所有的电子邮件,那么这个时候我们就需要定义一个正则表达式来匹配网页上的所有的电子邮件,来过滤掉我们不需要的数据。

下面先从正则表达式最基础的部分知识讲起:
2.原子概念:
原子 是正则表达式中最基本的组成单位。原子说白了就是一个字符,例如:'abc’中就有3个原子。当然原子不止是字母类的,这里只是举个例子让大家容易理解一点。

3.原子分类:
(1)普通字符作为原子(数字,大小写字母,下划线等)
(2)转义字符作为原子(常见的有:\n(换行符) \t(制表符))
(3)通用字符作为原子(\w和\W 、\d和\D、\s和\S)
(4)原子表( [xyz] 和 [^xyz])

4.代码讲解:
先理解这几个解释,下面的代码都是围绕这几个定义来的:
pattern (正则表达式);string(匹配的目标体);查找函数:search(正则表达式,目标体)

下面将详细的以代码形式来讲解4类原子的具体用法:

(1)普通字符作为原子(数字,大小写字母,下划线等)

import re #第一步:导入正则表达式的模块
pattern = ‘@qq.com’ #第二步:定义正则表达式,筛选出所有包含@qq.com的qq邮箱
string = '[email protected] ’ #第三步:设置查找匹配的目标体,字符串或网页等
result = re.search(pattern , string) #第四步:使用re模块中的search(正则表达式,目标体)函数来判断匹配的情况
print(result) #第五步:输出匹配的结果,匹配失败则返回None

(2)转义字符作为原子(常见的有:\n(换行符) \t(制表符))

思路:正则表达式是一个’\n’,如果目标体中存在换行符则匹配成功,反之失败
import re
pattern = ‘\n’ #转义字符作为原子(正则表达式)
string = ‘’‘http://www.baidu.com
https://hao.360.cn/’’’ #要匹配的字符串(目标体)
result = re.search(pattern,string) #查找函数
print(result) #输出匹配的结果

(3)通用字符作为原子(\w和\W 、\d和\D、\s和\S)

字符含义解释:
‘’’
\w(匹配任意一个字母、数字或下划线)
而\W(匹配除字母、数字或下划线以外的任意一个字符)
\d(匹配任意一个十进制数)
\D
\s(匹配任意一个空白字符)
\S
‘’’
#例子:"\w\dpython\w" 解释:对字符python进行匹配,后面是
# 一个字母、数字或下划线;字符前的一位是一个任意的十进制数,
# 再前一位置是一个字母、数字或下划线。
# 如:“67python8” , “u2python_” 都可以匹配成功

import re
pattern = “\w\dpython\w”
string = “abcdefphp3456pythonz_py”
result = re.search(pattern,string)
print(result)

(4)原子表( [xyz] 和 [^xyz])

#原子表常用[xyz]表示,中括号内的原子地位平等,
# 例子:正则表达式:[xyz]py 能匹配"xpy"、“ypy”、"zpy"
# 类似的,[^xyz]py (除中括号内的原子不能匹配外,其余的都可以),如"apy"

import re
pattern1 = ‘\w\dpython[xyz]’
pattern2 = ‘\w\dpython[^xyz]\w’
string = “abcdefphp3456pythonz_py”
result1 = re.search(pattern1,string)
result2 = re.search(pattern2,string)
print(result1)
print(result2)

**总结:**这是正则表达式基础的原子篇,大家觉得怎样,欢迎评论呀!!

猜你喜欢

转载自blog.csdn.net/qq_41731978/article/details/82718778