学习进度02_2


# 匹配一个字符
import re

# re match函数
text = "ss555"
# 匹配ss字符串
ret = re.match('ss', text)
print(ret.group())

# .匹配一个字符 .不能匹配换行符
ret = re.match('.', text)
print(ret.group())

# .会报错  不能匹配换行符
text1 = '\n'
# ret = re.match('.', text1)
# print(ret.group())

# \d匹配任意的数字 \D匹配到任意的非数字
# \w匹配的是a-z A-Z 数字 下划线 \W与\w相反
# \s匹配字符
text2 = '123'
# ret = re.match('\d', text2)
# print(ret.group())
text3 = 'ss'
# ret = re.match('\D', text3)
# print(ret.group())

# \s匹配的是空白字符 包括\n \t \r

# []组合的方式 只要满足中括号中的字符,就可以匹配
# [\d\-]+
# +代表匹配多个字符
# ^代表非
# [^0-9]  可代替 \D [0-9]  可代替 \d
# [0-9a-zA-Z_] 可代替 \w [^0-9a-zA-Z_] 可代替 \W
text4 = '0316-5153300sss'
ret = re.match('[\d\-]+', text4)
print(ret.group())

 

# 匹配多个字符
import re

# * + {}的使用
# *匹配任意多个字符
text = '9988587'
ret = re.match('\d*', text)
print(ret.group())

# +匹配一个或多个字符
text1 = 'ab*cd'
# 结果ab
# ret=re.match('\w+',text1)
# print(ret.group())
text2 = '*abcd'
# 报错,因为第一个*出错
# ret=re.match('\w+',text2)
# print(ret.group())

# ?匹配一个或者0个
# 无 匹配到0个
text3 = '*abcd'
# ret = re.match('\w?',text3)
# print(ret.group())
# a 匹配到1个
text4 = 'abcd'
# ret = re.match('\w?',text4)
# print(ret.group())

# {m,n} 匹配m-n个字符 匹配最多

# 结果 a
text5 = 'a-bcd'
ret = re.match('\w{1,2}',text5)
print(ret.group())

# 结果 ab
text5 = 'abcd'
ret = re.match('\w{1,2}',text5)
print(ret.group())

# 结果 abcd
text5 = 'abcd'
ret = re.match('\w{1,5}',text5)
print(ret.group())

 

正则表达式的练习

 

posted @ 2020-02-02 19:09  Abandoned_Software  阅读(100)  评论(0编辑  收藏  举报