哈喽同志们好哦!
今天,学弟学习了正则表达式,给大家分享一下自己的理解和心得,希望大家可以指出我的错误哦,谢谢。
为什么要学习正则表达式嘞?我的理解~~额…
在我们利用python来开发时,不免要处理大量的字符串,他们代表的东西各不一样,有时,我们想要一大堆字符串中的指定的某些数据,我们怎么去把他们筛选出来呢? 所以,就有了我们的正则表达式。
(Regular Expression )
python中对于字符串进行匹配时,要导入 re 模块
import re
regular = re.match('正则式子','要筛选的字符串')
print(regular.group())
re.match 是对于正则匹配检查的方法,如果匹配输出匹配对象,不匹配,则返回None
import re #导入re模块
result = re,match('english','english is a language')
print(result.group())
这个例子非常简单,就是找出english ,然后输出来,如果没有english,就会报出None,这个形式,如果后面字符串的开头不是english那么也将报错。
表示字符
1.
字符 | 功能 |
---|---|
. | 匹配任意一个字符 |
import re
ret = re.match('.....','I like China')
print(ret.group())
这种形式,可以0输出和点一样多的字符串,而且是任意字符(除了\n)
字符 | 功能 |
---|---|
[] | 匹配[]中列举的字符 |
import re
ret = re.match('[a-z]','i like China')
print(ret.group())
这种形式,可以匹配出a - z 的所有字符,当然,[]中可以有很多自己想要的字符 累加的形式为 [a-zA-Z0-9]
字符 | 功能 |
---|---|
\d | 匹配数字,即0-9 |
import re
ret = re.match ('\d个糖果','吃了4个糖果')
print(ret.group())
\d这个 只能匹配出0-9这几个数字,如果想要匹配出两位数字,那么就要放置两个 \d,在需要多种类型一起的话,还可以与其他类型的连用,那就需要用 0-9来表示喽,而且还要写在[]内呢。
字符 | 功能 |
---|---|
\D | 匹配非数字,即不是数字 |
import re
ret = re.match('\D{3}','刷刷刷')
print(ret.group())
此代码就是匹配非数字的,汉字也可以哦。
上面的代码有个{},这是在后面才会说的 数量问题就是说{}内输入几个数字,就能输出几个(当然,字符串要有足够长)
字符 | 功能 |
---|---|
\s | 匹配空白 和 Tab键 |
import re
result = re.match('\s','I like China')
print(result.group())
这就可以输出空格了,想要知道空格有几个,可以在前边加一个 len
比如 print(len(result.group()))
这就可以实现喽
剩下的就不一一举例了,
/S
匹配除了空格的
\w
匹配单词字符,a-z,A-Z,0-9, _
\W
匹配非单词字符(单词字符包括大写字母,小写字母,数字,下划线)
生活多不容易,少年需加油!