正则表达式是一种让字符串处理更简单的工具(本质是做字符串匹配的)
fullmatch(正则表达式,字符串) - 让正则表达式和字符串进行完全匹配,如果匹配失败,结果是None
python的正则表达式:r’正则表达式’
re_str = r'abc'
result = fullmatch(re_str,'abc')
print(result)
. - 匹配一个任意字符
re_str1 = r'.abc.'
result = fullmatch(re_str1,'FabcF')
print(result)
re_str2 = r'\wabc'
result = fullmatch(re_str2,'_abc')
print(result)
re_str3 = r'\d\d\d'
result = fullmatch(re_str3,'123')
print(result)
re_str = r'\s\d..'
result = fullmatch(re_str,'\n9k/')
print(result)
\字母 - 小写字母和对应大写字母的功能相反
re_str1 = r'\dabc\D'
result = fullmatch(re_str1,'8abc-')
print(result)
a. [abc123] - 匹配a,b,c,1,2,3中任意一个字符
b. [a-z] - 表示匹配从字符a到字符z之间的任意一个字符
[a-zA-Z] - 匹配任一字母
[\u4e00-\u9fa5]
re_str = r'[abcABC]123'
result = fullmatch(re_str,'c123')
print(result)
练习:判断输入的手机号是否正确
re_str = r'1[3-9]\d\d\d\d\d\d\d\d\d'
result = fullmatch(re_str,'18')
print(result)
re_str = r'[a-zA-Z0-9_]abc'
result = fullmatch(re_str,'/abc')
print(result)
re_str = r'\d\d\b\d\d'
result = fullmatch(re_str,'12 34') # None
re_str = r'\d\d.\b\d\d'
result = fullmatch(re_str,'12 34')
re_str = r'\d^abc'
print(fullmatch(re_str,'1abc')) # None
re_str = r'^\d\d\dabc'
print(fullmatch(re_str,'123abc'))
print(search((r'^\d\d\d'),'ads345abc'))
print(search((r'\d\d\d$'),'ads345abc'))
字符* - 字符出现0或多次
re_str = r'a*'
print(fullmatch(re_str,'ads345abc'))
re_str = r'123[a-z]*'
print(fullmatch(re_str,'123wqhis'))
re_str = r'a+'
print(fullmatch(re_str,'a'))
re_str = r'\d?abc'
print(fullmatch(re_str,'0abc'))
练习:写一个正则表达式可以匹配任一整数字符串
re_str = r'[-+]?\d+'
print(fullmatch(re_str,'78923474893702148973219847039'))
{N} - 表示匹配N次
{M,N} - 匹配M到N次
{M,} - 至少匹配M次
{,N} - 最多匹配N次
re_str = r'\d{4}abc'
print(fullmatch(re_str,'1234abc'))
re_str = r'\d{4,6}abc'
print(fullmatch(re_str,'1234567abc'))
re_str = r'\d{4,}abc'
print(fullmatch(re_str,'1234567abc'))
re_str = r'\d{,4}abc'
print(fullmatch(re_str,'1234567abc'))
在匹配次数不确定的情况下,匹配模式分为两种:贪婪和非贪婪
贪婪:默认都是贪婪的(在能匹配到的前提下匹配次数尽可能多)
*、+、?、{M,N}、{M,}、{,N}
非贪婪:(在能匹配成功的前提下,匹配次数尽可能少)在匹配次数不确定的时候,次数后面加问号,匹配就是贪婪的
*?、+?、??、{M,N}?、{M,}?、{,N}?
re_str = r'\d{2,}'
本文地址:https://blog.csdn.net/FantfH/article/details/107050086
如对本文有疑问, 点击进行留言回复!!
Python笔记-UiSelector中resourceId定位方式
【3Dtiles】3Dmax模型处理为gltf和3dtiles,包含LOD效果
荐 用Django全栈开发——08. 使用AdminLTE开发前端登录页面
网友评论