一、分支: |
正则1|正则2|正则3
#写一个正则匹配一个字符串:123abc 和 456abc
from re import fullmatch
re_str= r'123abc|456abc'
print(fullmatch(re_str,'456abc'))
二、()
1、分组
# abc出现3次
re_str= r'(abc){3}'
print(fullmatch(re_str,'abcabcabc'))
# 写一个正则匹配一个字符串:123abc 和 456abc
re_str=r'(123|456)abc'
print(fullmatch(re_str,'123abc'))
#两个数字两个字母的结构重复4次
re_str=r'(\d\d[a-zA-Z]{2}){4}'
2、重复
\M - 重复前面第M个分组匹配到的内容(M从1开始)
re_str=r'(\d\d)=\1abc'
print(fullmatch(re_str,'12=12abc'))
re_str= r'(\d\d)-([a-z]{3})-\2-\1'
print(fullmatch(re_str,'23-xcv-xcv-23'))
3、取括号中的部分
from re import fullmatch,findall
re_str = r'abc(\d*)'
print(findall(re_str,'abc123abc54abc1')) #['123', '54', '1']
4、捕获
findall
三、转义符号:在具有特殊功能或者特殊意义的符号前加\,让功能消失
re_str=r'\.12'
print(fullmatch(re_str,'.12'))
# 注意:独立存在有特殊功能的符号在[]中功能会自动消失
re_str=r'[+-.]abc'
print(fullmatch(re_str,'.abc'))