正则表达式——其他

第 6 章 其他

6.1 转义

  正则表达式中的转义的是个麻烦的问题,经常会搞得人头疼。虽然之前各章都提到了转义,仍然有必要专门介绍。

6.1.1 字符串转义与正则转义

  理解转义的基础是,明白字符串与正则表达式的关系。通常说的string(字符串)中,string称为字符串文字(String Literal),它是某个字符串的值在源代码的表现形式。

字符串文字 字符串 说明
\n NL 换行符
\t Tab 制表符
\||反斜线字符

  另一方面,在源代码中看到的“正则表达式”regex,其中的regex称为正则表达式文字(Regular Expression Literal,以下简称正则文字),是正则表达式的表现形式。

从字符串文字到正则表达式的转换

字符串文字 字符串/正则文字 正则表达式 说明
\\n \n NL 换行符
\\t \t Tab 制表符
\\\|\||反斜线字符

  总的来看,转义的情况确实很复杂,我推荐的做法是:
  第一,如果可以使用原生字符串或者正则文字直接表示正则表达式,应当尽量使用这种做法,因为它简单直观,方便理解;而且,本书从此开始,如果能使用原生字符串表示正则表达式,则使用原生字符串,在 Python 示例代码中使用r"regex"的形式,
  第二,如果确实必须使用字符串文字,请尽量坚持这条原则:正则表达式中的每个反斜线\,在字符串文字中都必须写成\\,只有\n\t中的反斜线例外(但是\\n\\t也不难理解);我不推荐使用语言自身提供的“字符串转义时将无法识别的转义序列保留下来”的规定——比如要在正则表达式中使用自负责简记法\d,正则文字中要写为\\d,而不是\d——这样有利于使用其他语言的程序员阅读。

posted @ 2018-12-11 14:59  gaara724  阅读(150)  评论(0编辑  收藏  举报