正则表达式概述
- 正则表达式,又称规则表达式。计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
re模块操作
导入re模块
import re
使用match方法进行匹配操作(返回一个对象)
result = re.match(正则表达式,要匹配的字符串)
最简单的匹配
import re
result = re.match(r"hello","hello world")
print (result.group())
对象的group方法提取数据
result.group()
匹配单个字符
字符 | 功能 |
---|---|
. | 匹配任意1个字符(除了\n) |
[] | 匹配[]中列举的字符 |
\d | 匹配数字0-9 |
\D | \d的相反面,即非数字0-9 |
\s | 匹配空格,tab键 |
\S | \s的相反面 |
\w | 匹配单词字符,即0-9,a-z,A-Z _ |
\W | \w的相反面 匹配非0-9,a-z,A-Z _ |
示例:(看代码中的正则即可)
匹配hello 不论大小写([ ]使用)
import re
result = re.match(r"[hH]ello","hello")
print (result.group())
匹配速度与激情1-3 6-8部([ ]使用)
import re
result = re.match(r"速度与激情[1-36-8]","速度与激情1") //这里修改数字
print (result.group())
在匹配的字符串内改数字1-8.
所有的大学字母正好是小写字母的相反
匹配多个字符
字符 | 功能 |
---|---|
* | 匹配一个字符出现0次或者无限次,即可有可无 |
+ | 匹配一个字符出现1次或者无限次,即至少有一次 |
? | 匹配前一个字符出现1次或者0次,即要么有1次,要么没有 |
{m} | 匹配前一个字符出现m次 |
{m,n} | 匹配前一个字符出现从m到n次 |
示例:(看代码中的正则即可)
如果速度与激情有两位数以上的部数({ }使用)
import re
result = re.match(r"速度与激情\d{1,2}","速度与激情12") //这里修改数字
print (result.group())
一串11位数字电话号码({ }使用)
import re
result = re.match(r"\d{11}","12345678901")
print (result.group())
有些电话号码中间有-,有些电话号码没有(?使用)
import re
result = re.match(r"\d{3}-?\d{8}","12345678901")
print (result.group())
?前面的东西是可有可无的
文本的所有内容(.*可以匹配所有内容(可以没有内容) 但不包括\n)
import re
result = re.match(r".*","ddddd")
print (result.group())
升级版 把\n也匹配出来
import re
result = re.match(r".*","ddddd\nxxxxx",re.S)
print (result.group())
.+与.*类似,但.+必须有内容