正则表达式:数据处理
正则表达式不仅可以使用在python,还可以用在前端,JAVA等。
作用:
(1)可以用来检测用户输入的信息是否符合我们的要求
(2)可以通过这些规则快速找到网址上的一些规则
在python中需要通过正则表达式对字符串进行匹配的时候,可以使用 re 模块
re 模块的使用过程:
#coding=utf-8
import re
#使用match方法进行匹配操作
result=re.match(正则表达式,要匹配的字符串)
#如果上一步匹配成功的话,可以使用group 方法来提取数据
result.group()
判断字符串是否以hello开头
import re
re.match(r"hello","hello world")
#这样会返回一个对象,表示写的数据符合要求
re.match(r"hello","Hello world")
#这样什么都没返回,表示传入的字符串不符合正则表达式要求
这样可以通过有没有返回值来验证用户的数据是否符合我们的要求。
判断是否以大写或者小写来开头的
re.match(r"[hH]ello","hello world")
# 当没有这个中括号的时候要么匹配小写,要么匹配大写
匹配单个字符
字符 | 功能 |
---|---|
. | 匹配任意一个字符(除了\n) |
[ ] | 匹配[ ]中列举的字符 |
\d | 匹配数字,即0-9 |
\D | 匹配非数字,即不是数字 |
\s | 匹配空白,即空格,tab键 |
\S | 匹配非空白 |
\w | 匹配单词字符,即a-z,A-Z,0-9,_ (匹配所有包括下划线) |
\W | 匹配非单词字符 |
\d: 表示数字
当写:
re.match(r"速度与激情1","速度与激情2")
#这样会什么都不返回
当写:
re.match(r”速度与激情\d”,”速度与激情5”)
#这个时候会返回值可以通过group() 来获取返回的数据
例如:
ret = re.match(r“速度与激情\d”,”速度与激情7”)
ret.group()
返回:
‘速度与激情7’
一个 \d 对应一位数据
如果想要从给定的范围取出数据的话可以使用括号中给出范围
ret=re.match(r"速度与激情[123456789]","速度与激情1")
ret.group()
返回结果:
速度与激情1
#只要符合正则要求就会返回数据
也可以这样写:
re.match(r"速度与激情[123456789]","速度与激情1").group()
返回结果:
速度与激情1
#这个是先调用re模块中的Match,如果给的字符串符合正则表达式的要求,就会返回对象给group( ),并返回结果。
[1-8]相当于[12345678]
re.match(r”速度与激情1-8”,“速度与激情7”).group()
返回:
速度与激情7
假如不想选其中某一个数据:
这个中括号代表一位数,所以[1-36-9]代表从1到3,从6到9
中括号匹配的可以不仅是数字也可以是字母:
\w 范围特别广,可以匹配很多东西(包括下划线,小写字母,大写字母,数字,中文,下划线),所以一般不太适合严格比较
星代表任意一个字符,只能是一位