re正则相关


import re
ret = re.findall('w\w{2}l', 'hello world')
print(ret)
ret = re.findall('alex', 'delfffalexdfkjggggalex.1123')
print(ret)

# 元字符
# .:通配符
a = re.findall('w..l', 'hello world') # .只能代替一个字符
print(a)
# b = re.findall('w..l','hello w\nld') # 不能匹配换行符,\t可以匹配
# print(b)

# ^:以什么开始
# a = re.findall('^h...o', 'hjasdflhello')
# print(a)

# $:以什么结尾
# b = re.findall('a..x$', 'hafddfdalexauix')
# print(b)

# *:重复匹配
# a = re.findall('a.*li', 'fjkafsdklalexlifasdfjkl')
# b = re.findall('ab*','bcccc')
# print(a,b)

# +:[1,+00]1个字符串到无穷
# ret = re.findall('ab+', 'kjldfah')
# print(ret)
# ret1 = re.findall('a+b', 'aaaabhghf')


# ? [0,1]匹配?前面的字符0次或者1次
# ret = re.findall('a?b', 'aaaabhghabfb')
# print(ret)

# {}加数字代表匹配多少次{}前面的字符串
# ret = re.findall('a{5}b', 'vaaaaaab')
# print(ret)
#
# ret1 = re.findall('a{1,3}b', 'aaaab') #贪婪匹配-取最大的个数
# print(ret1)

'''
结论:*等于{0,正无穷}
+等于{1,+oo}
?等于{0,1}
{3}等于{3,+oo}

'''
# 字符集[]

# ret=re.findall('a[c,d,e, ]x', 'aex')
# print(ret)
#
# ret1=re.findall('[a-z]','adx')
# print(ret1)
# []字符集:取消元字符的特殊功能(\ ^ -这些除外)
# ^放在[]里面:取反
# ret3=re.findall('[w,*]','awdx*')
# print(ret3)
# ret4=re.findall('[^4,5]', 'iu12tyA5i4,uS')
# print(ret4)

# \ 反斜杠后面跟元字符去除特殊功能,
# \ 反斜杠后面跟普通字符实现特殊功能
# print(re.findall('\d{11}', 'fauisdlhf31264723124')) #匹配11个数字

#####################################
# re的另外一个方法search,匹配出第一个满足条件的结果
# ret = re.search('s.b', 'fjadfkjdfsdbdfsab')
# print(ret)
# print(ret.group())

# \ 反斜杠的困扰
# 与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用"
# 编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在" \
# 正则表达式里转义成一个反斜杠。Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\\"表示。同样匹配
# 一个数字的"\\d"可以写成r"\d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。


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

# 1.findall():所有结果都返回到一个列表里
# 2.search():返回匹配到的第一个对象(object),对象可以调用group()返回结果
# 3.match():只在字符串开始匹配
# 4.split():按照指定的字符串分割
# ret = re.split('k', 'djksal')
# ret1 = re.split('[j,s]', 'djksal')
# ret2 = re.split('[j,s]', '1sdjksal')
# ret3 = re.split('[j,s]','sdjksal')
# print(ret,ret1,ret2,ret3)

# 5.sup()三个元素,匹配字符串,需要替换成的字符串,需要被匹配的字符串
ret = re.sub('a..x', 's..b', 'hfjasalexdhf')
print(ret)

# 6.compile()
# obj = re.compile('\.com')
# print((obj.findall('fhasjd.comfajld')))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值