快速入门
教程
工具和语言
示例
参考
书评
替换文本教程
简介
字符
不可打印字符
匹配文本
反向引用
匹配上下文
大小写转换
条件
本网站的更多内容
简介
正则表达式快速入门
正则表达式教程
替换字符串教程
应用程序和语言
正则表达式示例
正则表达式参考
替换字符串参考
书评
可打印 PDF
关于本网站
RSS Feed 和博客

不可打印字符

大多数应用程序和编程语言都不支持替换文本中的任何特殊语法,使其更易于输入不可打印字符。如果您是应用程序的最终用户,这意味着您必须使用 Windows 字符映射等应用程序来帮助您输入无法在键盘上键入的字符。如果您正在编程,则可以将替换文本指定为源代码中的字符串常量。然后,您可以在编程语言中使用 字符串常量的语法 来指定不可打印字符。

Just Great Software 应用程序 是一个例外。它们允许您使用特殊的转义序列输入一些常见的控制字符。使用 \t 替换为制表符(ASCII 0x09),\r 替换为回车(0x0D),\n 替换为换行(0x0A)。请记住,Windows 文本文件使用 \r\n 终止行,而 UNIX 文本文件使用 \n

Python 也支持替换文本中的上述转义序列,除了在字符串常量中支持它们之外。Python 和 Boost 也支持这些更奇特的不可打印字符:\a(响铃,0x07),\f(换页,0x0C)和 \v(垂直制表符,0x0B)。

Just Great Software 应用程序和 Boost 也支持十六进制转义。您可以使用 \x{FFFF} 插入 Unicode 字符。欧元货币符号占据 Unicode 代码点 U+20AC。如果您无法在键盘上键入,您可以使用 \x{20AC} 将其插入替换文本中。JGsoft 应用程序还支持 \u20AC。对于 127 个 ASCII 字符,您可以使用 \x00\x7F。如果您在 EditPad 或 PowerGREP 中使用 8 位代码页处理文件,或在 Boost 中使用 8 位字符字符串,您还可以使用 \x80\xFF 从这些 8 位代码页中插入字符。

Python 不支持替换文本语法中的十六进制转义,即使它在字符串常量中支持 \xFF\uFFFF

正则表达式语法与字符串语法

许多编程语言支持源代码中文字符串字面量的非打印字符转义。然后,在将字符串传递给搜索和替换函数之前,编译器会将此类转义符转换为其实际字符。如果搜索和替换函数不支持相同的转义符,当正则表达式指定为源代码中的文字字符串时,这可能会导致行为上的明显差异,而与从文件读取或从用户输入接收的正则表达式相比则没有差异。例如,JavaScript 的 string.replace() 函数不支持任何这些转义符。但 JavaScript 语言确实支持字符串字面量中的转义符,如 \n\x0A\u000A。因此,在 JavaScript 中开发应用程序时,只有当您将替换文本作为字符串字面量添加到源代码时,\n 才被解释为换行符。然后,JavaScript 解释器会转换 \n,而 string.replace() 函数会看到一个实际的换行符。如果您的代码从文件中读取相同的替换文本,那么 string.replace() 函数会看到 \n,它将其视为一个反斜杠和一个 n。

| 快速入门 | 教程 | 工具和语言 | 示例 | 参考 | 书籍评论 |

| 简介 | 字符 | 不可打印字符 | 匹配文本 | 反向引用 | 匹配上下文 | 大小写转换 | 条件 |