知识卡片
双重转义心智
内容
多数语言把正则写在字符串里,表达式会先被语言字符串解释,再被正则引擎解释。调试时应追问“引擎实际收到什么”,而不是只盯源码里的字面量。关联:[[元字符依赖语境]]。
参考来源
- 位置:第3章《正则表达式的特性和流派概览》「作为正则表达式的字符串」小节(源文件:_epub-src/text/part0008_split_003.html)
- 结论依据:原文明确说明正则引擎接收的是以字符串形式提供的表达式,构造这个字符串时程序员还需留意宿主语言自身的字符串元字符,必须用两个反斜线才能表示正则表达式里的一个反斜线,直接支持卡片对双重转义的论述。
- 原始内容:"正则引擎接收的是以普通字符串形式提供的正则表达式……在构造作为正则表达式的字符串时,他们还需要留意编程语言定义的字符串元字符……在字符串文字中,必须使用两个紧挨在一起的反斜线才能表示正则表达式中的反斜线。"