问答详情
源自:3-1 python正则表达式语法(一)

为什么匹配的字符前面有r后面还可以使用转移符?

r'/[[\w]/]'

提问者:hhhhhhhhzzzzzzzz 2016-03-29 17:32

个回答

  • 慕斯5482594
    2016-10-13 16:48:32

    (1)在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。

    (2)[\w]  匹配一个字集      (   [...]   匹配字集 )

    ma = re.match(r'\[[\w]\]','[a]')   #\[   \] 要匹配[当是是a-zA-Z0-9] ,例:[a]
    print ma.group()
    [a]
    
    ma = re.match(r'[\w]','a')
    print ma.group()
    'a'


  • 无名小小卒3355288
    2016-05-17 21:30:49

    再补充一下,()在正则表达式里是表示分组,【】是表示字符集,它们都是有特定含义的,如果不加转义就会让解析器出错。所以这些应该是特例,可以看后面的章节,里面有()的用法

  • 无名小小卒3355288
    2016-05-17 21:03:04

    的确需要转义,不转义解析器就会判断错误。我的理解是[]是针对字符集的,如果必须要匹配[],就需要转义。大括号就没有这个问题,中括号应该是一个特例,所以老师特意说明一下

  • 在灿烂的季节
    2016-03-30 10:26:44

    \w不是转义字符啊 它表示的是匹配单词字符