16°

1. unicode和bytes类型的匹配

  1. Unicode 和 bytes

    在正则表达式,是两种类型,不能混为一谈。匹配和替换需要是相同类型的;

    unicode替换unicode,bytes替换bytes;

    	import re
    	ret = re.match("hel","hello")
    	print(ret)
    	ret = re.match(b"hel",b"hello")
    	print(ret)
    	ret = re.match(b"hel","hello")
    	print(ret)
    
    前两个正常执行,后面一个因为类型不一致,所以报错。
  2. 转义字符

    \反斜杠表示的含义

    1. \表示转义,表示后面的字符将在代码解析的时候进行转义。
    2. \\所示的被解析后的代码为\,在re模块表示后面的字符将会进行转义,可能是显示原字符。
    3. \\\\在RE模块中表示真正的\字符。

    如下所示

    import re
    ret = re.match("hello\\\\","hello\\")
    print(ret.group())
    
  3. 两种匹配模式
    1. 原模原样的匹配。
      	import re
      	ret = re.match(r"hello\\","hello\\")
      	print(ret.group())
      
    2. 转义式匹配
      	import re
      	ret = re.match("hello\\\\","hello\\")
      	print(ret.group())
      

    不同点在于r,在匹配规则声明了r表示原模原样的匹配,一对一进行匹配。

本文由【鬼上身跳不过门槛】发布于开源中国,原文链接:https://my.oschina.net/u/3695598/blog/3136414

全部评论: 0

    我有话说: