正则表达式re.escape

291 篇文章 2 订阅

一.re.escape(pattern) 可以对字符串中所有可能被解释为正则运算符的字符进行转义的应用函数。如果字符串很长且包含很多特殊技字符,而你又不想输入一大堆反斜杠,或者字符串来自于用户(比如通过raw_input函数获取输入的内容),且要用作正则表达式的一部分的时候,可以使用这个函数.

需求:提取的字符串里面存在特殊的符号,这些符号在正则表达式里面有特殊的意义,
有使用的规范,不能随意使用。

逐一x.replace(’+’, ‘+’).replace(’.’, ‘.’).replace(’*’, ‘*’)…?

那么多字符串你怎么知道有哪些特殊字符串?what to do?

别急客官,热乎乎的干货来了。。。。。。。。。。。。。。

Python 的正则表达式模块已经帮你想好了解决办法,

使用re.escape就能自动处理所有的特殊符号了!

实战举例:

import re
words = [’+\d’,’***…{}’,‘前进的码力牛掰plus’,‘点赞你最帅’,‘持续发文,{做最实用的博客}’]
pattern_str = ‘|’.join(words)
safe_pattern_str = re.escape(pattern_str)
print(safe_pattern_str)
打印结果:
在这里插入图片描述

pattern = re.compile(safe_pattern_str)
print(pattern)
打印结果:

在这里插入图片描述

二.re.compile1. 使用re.compilere模块中包含一个重要函数是compile(pattern [, flags]) ,该函数根据包含的正则表达式的字符串创建模式对象。可以实现更有效率的匹配。在直接使用字符串表示的正则表达式进行search,match和findall操作时,python会将字符串转换为正则表达式对象。而使用compile完成一次转换之后,在每次使用模式的时候就不用重复转换。当然,使用re.compile()函数进行转换后,re.search(pattern, string)的调用方式就转换为 pattern.search(string)的调用方式。其中,后一种调用方式中,pattern是用compile创建的模式对象。如下:

>>> import re

>>> some_text = 'a,b,,,,c d'

>>> reObj = re.compile('[, ]+')

>>> reObj.split(some_text)

['a', 'b', 'c', 'd']
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值