正则re模块
作用:正则表达式是用来匹配处理字符串的
正则表达式的匹配规则
匹配规则 | 说明 |
---|
元字符表 | |
^ | 单行匹配以某字符开头的字符串,多行匹配已某字符开头的行 |
$ | 单行匹配以某字符结尾的字符串,多行匹配以某字符结尾的行 |
. | 匹配任意单个字符 |
* | 匹配*号前字符出现0次或多次的字符串,相当于{0,} |
? | 匹配?号前字符出现0次或1次的字符串,相当于{0,1} |
+ | 匹配+号前字符出现1次或多次的字符串,相当于{1,} |
[] | 匹配字符集中的任意一个字符,[^] 表示取反 ^ [] 表示以字符集内任意字符开头 |
{} | 指定匹配{}前字符出现的次数,{m,n} |
() | 将()内的字符串看作一个整体进行处理,分组 |
| | 或, |
预定于字符表,可以写在字符集中 | |
\d | 只匹配字符串中的数字 |
\D | 配置字符串中除数字的任意字符串 |
\s | 匹配任何空白字符 |
\S | 匹配任何非空白字符 |
\w | 匹配任何字母包含下划线 |
\W | 匹配任何非字母包含下划线 |
\b | 匹配字符串的边界 |
特殊分组用法表 | |
(?P<n1>name) | 匹配到name格式的字符串作为value,n1作为key,使用groupdict输出为字典 |
(?P=name) | 引用为name的分组匹配到字符串 |
\number | 引用编号为number的分组匹配到的字符串 |
re模块的使用
import re
res=re.findall("\s","https://jira.yovole.tech/secure/StructureBoard.jspa?s=22")
print(res,type(res))
import re
origin="https://jira.yovole.tech/secure/StructureBoard.jspa?s=22,"
res1=re.match('j\w',origin)
res2=re.search('j\w',origin)
print(res1,res2)
print(res2.group())
------
res3=re.search('j(\w+)',origin)
print(res3.groups())
---
res4=re.search('(?P<n1>j)(?P<n2>\w+)',origin)
print(res4.groupdict())
res5=re.findall('/\w',origin)
print(res5)
res6=re.findall('s(\w+)',origin)
print(res6)
res7=re.findall('(s)(\w+)',origin)
print(res7)
res7=re.split('/',origin)
print(res7)
res8=re.sub("h","我",origin)
print(res8)
a,b=re.subn('h',"牛",origin)
print(a,b)