python正则表达式转义字符_第11.13节 Python正则表达式的转义符”\”功能介绍

为了支持特殊元字符在特定场景下能表示自身而不会被当成元字符进行匹配出来,可以通过字符集或转义符表示方法来表示,字符集表示方法前面在《第11.4节 Python正则表达式搜索字符集匹配功能及元字符”[]”介绍》进行了介绍,本节介绍转义符表示方法。

在re模块中,为了让元字符能表示自身,可以在元字符前面增加转义符反斜杠“\”,这个转义符的使用可以看到与Python字符串的转义符是完全相同的。re模块转义符和Python字符串转义符相同会导致在re模块进行转义处理时变得比较复杂,我们后面再单独章节讨论这个问题。

举例:我们要查找字符串中包含3个以上星号的字符串:

>>> re.search('*{3,100}','***************') #在匹配模式中星号未进行转义

Traceback (most recent call last):

File "", line 1, in

re.search('*{3,100}','***************')

File "C:\Program Files\Python37\lib\re.py", line 183, in search

return _compile(pattern, flags).search(string)

File "C:\Program Files\Python37\lib\re.py", line 286, in _compile

p = sre_compile.compile(pattern, flags)

File "C:\Program Files\Python37\lib\sre_compile.py", line 764, in compile

p = sre_parse.parse(p, flags)

File "C:\Program Files\Python37\lib\sre_parse.py", line 930, in parse

p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)

File "C:\Program Files\Python37\lib\sre_parse.py", line 426, in _parse_sub

not nested and not items))

File "C:\Program Files\Python37\lib\sre_parse.py", line 651, in _parse

source.tell() - here + len(this))

re.error: nothing to repeat at position 0

>>> re.search('\*{3,100}','***************') #对星号进行转义

>>>

从以上案例可以看出,在匹配模式中的星号未进行转义时,由于星号在re模块中被作为重复0-n次的特殊修饰字符,在处理时由于前面没有修饰对象导致re模块分析报错。而增加转义符后,星号被作为自身处理,因此能正确匹配。

注意:

1、所有元字符在匹配模式串中当要表示自身时需要加转义符反斜杠“\”;

2、反斜杠自身需要表示自己时一样需要使用转义符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值