今日在线

Python中的正则

正则

Python是一种计算机编程语言。正则表达式,其他语言也有正则表达式,其作用就是匹配字符串内容的一种规则,就是一种工具,对于爬虫是很重要的。

带着这些问题去学:

正则表达式概念:

1. 什么是正则表达式 ?

2. 正则表达式主要解决什么问题 ?

3. 我们如何开始正则的学习 ?

正则表达式所面向的问题:

判断一个字符串是否匹配给定的格式(判断用户注册帐号是否满足格式)

从一个字符串中按指定格式提取信息(抓取页面中的链接)

判断用户提交的邮箱的格式是否正确

一个或多个字母或数字@一个或多个字母或数字.com

R'^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.com$'

import rea='300@qq.com'mymail=re.findall(r'^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.com$',a)print(mymail)

就能匹配出来

又如:

a='你好,学习python,你不好'my=re.findall(r'你',a)print(my)

匹配了你这个字

# . 任意一个字符,两个.就是两个字符,可以多个连用,取消他的效果用\

a='你好,学习python,你不好'my=re.findall(r'你.',a)print(my)

a='你好,学习python,你不好'my=re.findall(r'你..',a)print(my)

# [] 列举一个字符a='你好,学习python,你不好'my=re.findall(r'[你]',a)print(my)

a='你好,学习python,你不好'my=re.findall(r'[你好]',a)print(my)

锚点元字符 匹配开头^ 匹配结尾$a='你好,学习python,你不好'my=re.findall(r'^[你好]',a)print(my) 匹配开头

a='你好,学习python,你不好你好'my=re.findall(r'你好$',a)print(my)匹配结尾

# \b 单词的边界比较下面两个例子,理解单词边界a='你好,学习python,你不好你好'my=re.findall(r'\b你好',a)print(my)

a='你好,学习python,你好你好'my=re.findall(r'\b你好',a)print(my)

# {n,m} 控制个数a='abbbbbbbc'my=re.findall(r'a.{1,10}c',a)print(my)这就能匹配到a了,n,m是个数范围

# * 匹配任意多字符,可以是0a='abbbbbbbc'my=re.findall(r'ab*c',a)print(my)同样可以匹配到

下面这些事其他方法,大家多敲就好# + 至少一个# ? 至多一个[0,1]# 非贪婪模式,加个?# \d 任意一个数字[0-9] \D 任意非数字 [^0-9]# \s 任意空白符 \S 任意非空白符# \w 任意字母数字 [0-9a-zA-Z] \W 任意非字母数字[^0-9a-zA-Z]注意:如果正则表达式中使用了括号,那么findall函数匹配的结果,只会是括号中的内容,而不是完整的匹配。因此我们可以利用这种机制来完整对需要部分的数据提取。多练习,你都了解了吗?Python是一个比较完整的编程语言,简单并且容易上手,应用范围还十分的广泛,好学的你赶紧来学吧 

相关文章