import re
ret = re.match(r"hello" ,"hello world")
print(ret)
ret = re.match(r"[12345678].*", "4速度与激情")
print(ret)
[] 匹配[]中列的字符
\d 匹配(0,9)数字
\w 匹配单词字符
\s 匹配空格
\D 小的相反
\S 小的相反
\W 小的相反
. 等价任意1个(除了\n)
匹配多个字符串:问号/大括号/星号/点匹配反斜\n
\d{1,2} 匹配来约束定义是数,如:手机号:
* 匹配任意个数,即可有可无
{} 约束个数
“”“”“” 匹配所用不换行
+ 匹配前一个字符出现1次或者无限次,即至少有1次
?匹配前一个字符出现1次或者0,即至少有1次,要么没有
{m} 匹配就一个字符出现 m次
{m,n} 匹配就一个字符出现 m次到次
注意:
/n 不能匹配
re.S 想匹配需要加
^$ 从头匹配到屋
| 或(左右一边)
(ab) 将括号中的字符作为一个分组
\nam 引用分组num匹配到的字符串
(?P<name>) 分组起名
(?P=name) 引用别名为name分组匹配到的字符串
match 匹配从头开始
search (位置不定)匹配字符串:
sub 替换多个 注意:必须返回字符串
findall 返回列表
splist 切割字符串
+? 变非贪婪
*? 变非贪婪
?? 变非贪婪
{1,3}? 变非贪婪
ret = re.match(r".*[1-8]", "速度与激情8")
print(ret)
ret = re.match(r".*[1-8a-zA-Z]", "速度与激情D")
print(ret)
ret = re.match(r"\d{11}", "13971052605")
print(ret)
ret = re.match(r"027-?\d{8}", "027-65503097")
print(ret)
ret = re.match(r"\d{3,4}-?\d{7,8}", "0270-65503097")
print(ret)
a = """dfsdfsdfsdf
sdf
sdfsdf
sdfsdfsdfsdfsdf
sdf
sdfsdfsdfsdgdfhgfhsgd
dsfaffasf
"""
ret = re.match(r".*", a)
print(ret)
a = """dfsdfsdfsdf
sdf
sdfsdf
sdfsdfsdfsdfsdf
sdf
sdfsdfsdfsdgdfhgfhsgd
dsfaffasf
"""
ret = re.match(r".*", a,re.S )
print(ret)
names = ["name1", "_name", "2_name", "__name__"]
for k in names:
ret = re.match(r"[a-zA-Z_][a-zA-Z_0-9]*",k)
if ret:
print("变量名 %s 符合要求%s" % (k,ret.group()))
else:
print("变量名 %s 非法"%k)
names = ["name1", "_name", "2_name", "__name__"]
for k in names:
ret = re.match(r"^[a-zA-Z_][0-9a-zA-Z_]*$",k)
if ret:
print("变量名 %s 符合要求%s"%(k,ret.group()))
else:
print("变量名 %s 非法"%k)
names = ["name1", "_name", "2_name", "__name__"]
for k in names:
ret = re.match(r"^[a-zA-Z_][0-9a-zA-Z_]*$",k)
if ret:
print("变量名 %s 符合要求%s"%(k,ret.group()))
else:
print("变量名 %s 非法"%k)
email = input("请输入邮箱地址:")
ret = re.match(r"[a-zA-Z_0-9]{4,20}@(163|126|qq)\.com$\.com$", email)
if ret:
print("%s符合"% email)
else:
print("%s不符合"% email)
这里写代码片