如何根据unicode号搜索某些字符?

时间:2018-01-18 10:05:07

标签: emacs

在Emacs中,我想搜索某些字符并替换它们。它们可以用unicode号分隔。例如,低于3个字符的unicode号不同。

á(#xe1), ⓐ(#x24d0), (#x1d4b6)

如果我想搜索范围#x1d000到#x1dfff之间的字符,然后我将使用regxp replace为每个字符添加双引号(""),该怎么办?

1 个答案:

答案 0 :(得分:4)

首先,您可以使用键绑定C-x 8 C-m通过十六进制代码输入Unicode字符(该命令称为insert-char)。因此,请键入C-x 8 C-m,输入1d000,然后点击RET以插入Unicode代码为1d000的字符。

然后我们可以用它来搜索和替换。

  • 键入C-M-%以运行命令query-replace-regexp
  • 对于搜索表达式,请输入[,然后输入C-x 8 C-m 1d000 RET,然后输入-,然后输入C-x 8 C-m 1dfff RET,最后输入]。也就是说,搜索1d000和1dfff之间范围内的任何字符。 (这类似于“普通”正则表达式[a-z],它匹配az之间的所有字符,即所有小写字符。)
  • 对于替换表达式,请输入"\&"\&是用于插入与搜索表达式匹配的文本的特殊序列,因此我们将用双引号将每个匹配的字符包装起来。
  • 然后,点击y逐个替换匹配,或!替换所有剩余的匹配。