【问题标题】:How to search and get rid of this character?如何搜索和摆脱这个角色?
【发布时间】:2021-05-06 23:26:07
【问题描述】:
Bulmaca-Zeka Oyunu<200f>

我在一个文本文件中有很多字符串,我注意到其中一个有这个 字符。我想找到所有具有此字符的条目并将其删除。但在 Vim 中,我无法通过使用搜索字符串 '' 搜索 '' 找到它。可能是 1 个字符而不是 6 个单独的字符。

在 Python 或 VIM 中,如何删除或搜索它们?

【问题讨论】:

    标签: python python-3.x vim unicode


    【解决方案1】:

    尖括号中的文字字符是 Vim 处理一些有问题的不可打印字符的方式。起初它们很令人费解,但它们真的很容易弄清楚,因为它们只是拼出字符的十六进制代码。

    在这种情况下,&lt;200f&gt;U+200F 的文字表示,您可以这样搜索:

    /\%u200f
    

    所以,如果你想摆脱当前缓冲区中出现的&lt;200f&gt;,你所要做的就是:

    :%s/\%u200f//g
    

    :help \%u

    【讨论】:

      【解决方案2】:

      您在vim 中找不到它,因为您没有搜索正确的字符串。 检查您的 vim 文档:尖括号是元字符。只需将它们转义,然后删除不需要的字符串。

      :%s/\<200f\>//g
      

      【讨论】:

      • 没有。不仅&lt;&gt; 不是元字符,而且OP 的缓冲区中没有字符串&lt;200f&gt;,而且您的搜索模式无论如何都会匹配200f,而不是&lt;200f&gt;
      【解决方案3】:

      在 Python 中,您也许可以使用字符串替换:

      line_of_text = "Bulmaca-Zeka Oyunu<200f>"
      print(line_of_text.replace("<200f>", "")
      

      输出:

      Bulmaca-Zeka Oyunu
      

      【讨论】:

      • "&lt;200f&gt;" 这是一个 6 个字符的字符串,而 OP 有一个具有此表示的字符。
      猜你喜欢
      • 2013-07-19
      • 2021-07-07
      • 2020-08-04
      • 1970-01-01
      • 2016-10-02
      • 2021-08-02
      • 2020-11-29
      • 2015-04-29
      • 1970-01-01
      相关资源
      最近更新 更多