小燚哥哥 2022-02-08 18:32 采纳率: 66.7%
浏览 42
已结题

(python)各位朋友,我想问一哈,为啥需要转义?

问:匹配以字母m开头的单词的正则表达式转化为模式字符串,则不能在其两侧添加引号定界符。例如,下面的代码是不正确的:
'\bm\w*\b'
而是需要将其中的\进行转义

我觉得\b是元字符。已经有特殊的含义了,这里不能转义处理....

  • 写回答

4条回答 默认 最新

  • chuifengde 2022-02-08 18:50
    关注

    你可以这么理解,你手写的字符串是需要python翻译成re正则认识的字符串的,但恰恰\b在python第一轮翻译的时候,它是回退符,所以轮到re翻译的时候就没有\b了
    因此,可以用r'\bm\w\b',它是原字符串,经第一轮翻译的时候,它还是'\bm\w\b'这时re就认识它了
    或者用\转义,可以'\bm\w\b',它经过python第一轮翻译,也变成了'\bm\w\b',这时re也认识它了.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 2月8日