正则表达式

# 正则表达式是用来干嘛的
# 1,匹配   字符串
# findall() 所有结果都会返回到一个列表里边
# search() 返回匹配到的第一个对象,对象可以调用group()返回结果
# matcj() 只在字符串开始匹配,返回一个对象
import  re
# s = 'hello world'
# print(s.find('ll'))  #第一个字符的索引
# set = s.replace('ll','xx')
# print(set)
# print(s.split(' '))
# string 提供的方法是完全匹配

#引入正则:进行模糊匹配
# print(re.findall('ww{2}l','hello world'))  #['worl']
# ret = re.findall('alex','djsaifjasoalexijfasoifjaalex')
# print(ret)    #['alex', 'alex']
# 正则表达式中的元字符

# . 通配符
# ret = re.findall('w..l','hello world')
# print(ret)  #['worl']  . 只能代表任意一个字符,除换行符


# ^
# ret = re.findall('^h...o','hafsosfahello')
# print(ret)  #['hafso']  只匹配开始符合的

# $
# ret = re.findall('a..x$','afjxjfiewalexfsalex')
# print(ret)  #['alex']  只匹配最后四个字符符不符合

# * :重复匹配  匹配0个或多个
# ret = re.findall('a.*li','sdwadsaajijisfsflixli')
# print(ret)  #['adsaajijisfsflixli']  贪婪匹配

# + :重复匹配  匹配1个或多个
# ? :匹配0或1次
# ret = re.findall('a?b','aaaabhsdsdabdbsd')
# print(ret)  #['ab', 'ab', 'b']

# {}:  {1,} 表示{1,+oo}
# ret = re.findall('a{5}b','asdasdaaaaabdasda')
# print(ret)   #['aaaaab']
# ret = re.findall('a{1,3}b','asdasdaaaaabdasda')
# print(ret)  #['aaab']  先取最多的三次a

# [] :字符集    取消元字符的特殊功能(-  ^)
# ret = re.findall('a[c,d,e]x','aexadxacx')
# print(ret)    #['aex', 'adx', 'acx']  匹配次c,d,e任意匹配一个
# ret = re.findall('[a-z]','aex')
# print(ret)  #['a', 'e', 'x']
# ret = re.findall('[w,*]','a*ex')
# print(ret)  #['*']

# ^ 放在[]里 取反
# ret = re.findall('[^4,5]','ida5dAa4sd')
# print(ret)  #['i', 'd', 'a', 'd', 'A', 'a', 's', 'd']
#  : 后边跟元字符去除特殊功能
# 后边跟普通字符实现特殊功能

# d  匹配任何十进制数 相当于[0,9]
# D  匹配任何非数字字符  相当于[^0-9]
# print(re.findall('d{8}','sda1487464654687452'))
# ['14874646', '54687452']

# s 匹配任何空白字符 相当于 [	

fv]
# S 匹配任何非空白字符 相当于[^ 	

fv]
# print(re.findall('sasd','fak asd'))  #[' asd']
# print(re.findall('Sasd','fakasd'))  #['kasd']

# w 任何字母数字字符  相当于 [a-z0-9A-Z]
# W 任何非数字字母字符  相当于[^ a-z0-9A-Z]
# print(re.findall('w','fak d')) #['f', 'a', 'k', 'd']

#  匹配一个特殊字符边界(除字母数字字符外全算特殊字符)
# print(re.findall(r'I','hello,I am a LI$T')) #['I', 'I']

#####################

# 匹配出第一个满足条件的结果
# print(re.search('sb','sadsbassb'))
# <_sre.SRE_Match object; span=(3, 5), match='sb'>
# ret = re.search('sb','sadsbassb')
# print(ret.group())  #sb
# ret = re.search('a.','a.gj').group()  # a.
# print(ret)  # a.

# print(re.findall(r'bsad','bsad'))  #['bsad']
# print(re.findall('\bbsad','bsad'))  #['bsad']

#() |
# print(re.search('(as)+','sadasas').group()) # asas
# print(re.search('(as)|3','gas3').group()) # as
# 匹配as或3

# ret = re.search('(?P<id>d{3})/(?P<name>w{3})','sd444/ooo')
# print(ret.group('id'))   #444
# print(ret.group('name'))  #ooo

# ret = re.match('asd','fsfsasd')
# print(ret)

# ret = re.split('[j,s]','sdjksal')  #*****
# print(ret)  #['', 'd', 'k', 'al'] 先分j 再分s 中间加上''
# ret = re.sub('a..x','s..b','hsaalexdd')
# print(ret)  # hsas..bdd

# obj = re.compile('.com')
# ret = obj.findall('dsaasd.comcas')
# print(ret)  #['.com']
r'^([0-9a-zA-Z_]){0,19}@[0-9a-zA-Z-]{1,19}(.[0-9a-zA-Z-]+)+(.[a-zA-Z]+)+$'
# 匹配邮箱
原文地址:https://www.cnblogs.com/linpei/p/10980382.html