Python 3.x 从字符串列表中删除所有转义序列

Python 3.x 从字符串列表中删除所有转义序列,python-3.x,regex,string,escaping,unicode-escapes,Python 3.x,Regex,String,Escaping,Unicode Escapes,我正在玩pokebase,它是一个用于pokeAPI的python包装,一些api响应包含\n\x0c等。最后我不需要它们,但我不想只是循环遍历每个字母来删除它们。替换看起来也不可持续(因为我认为这会导致问题) 这是字符串的示例列表: [“雌性动物的角\n发育缓慢。\n导致身体\x0c攻击,例如\n拉网和\n拉网。”,“在洞穴深处休息时,它的犬齿总是缩回。\n这是它放松的证据。”,“在喂养它的幼兽时,它首先将食物变软,然后将食物吐出来给后代。”,“它有一种平静而活泼的天性。\n因为它的角长得很慢

我正在玩pokebase,它是一个用于pokeAPI的python包装,一些api响应包含
\n
\x0c
等。最后我不需要它们,但我不想只是循环遍历每个字母来删除它们。替换看起来也不可持续(因为我认为这会导致问题)

这是字符串的示例列表:

[“雌性动物的角\n发育缓慢。\n导致身体\x0c攻击,例如\n拉网和\n拉网。”,“在洞穴深处休息时,它的犬齿总是缩回。\n这是它放松的证据。”,“在喂养它的幼兽时,它首先将食物变软,然后将食物吐出来给后代。”,“它有一种平静而活泼的天性。\n因为它的角长得很慢,所以它不会燃烧。”,“它有一种驯服的性格。如果“当NIDORINA和他们的朋友或家人在一起时,他们会把自己的倒刺藏起来,以防止彼此伤害。\x0c这个神奇宝贝如果与其他人分开,它会变得\n乖戾。”,“当它和朋友或家人在一起时,它的倒刺会藏起来\n以防止彼此伤害。”\NPR事件伤害。如果与其他人分开,它似乎会变得\n厌恶。',“雌性动物性情温和。\n它发出超声波叫声,有能力迷惑敌人。',“雌性动物的角发育缓慢。\n防止身体攻击,如抓和咬。',“当它感觉到危险时,它会在身体上竖起所有的倒钩。这些\n“倒刺的生长速度比尼多里诺的慢。”,“在喂养幼鸟时,它先把食物做成糊状,然后再把它吐出来给后代。”,“它有一种平静和关爱的天性。\n因为它的角生长缓慢,所以它不会反抗。”,“当它感觉到危险时,它会在身上竖起所有倒刺。这些倒刺的生长速度比尼多里诺的慢。”雌性动物性情温和。\n它会发出超声波叫声,这种叫声有能力迷惑敌人。”,“喂幼崽时,它会先把食物嚼成糊状,然后吐出来给后代。”,“当Nidorina和朋友或家人在一起时,它们会把它们的宝宝藏起来,以防彼此伤害。\n这个神奇宝贝看起来像是bec如果与其他人分开,可能会感到紧张。“,“当Nidorina与朋友或家人在一起时,他们会将倒钩隐藏起来以防止伤害彼此。\n如果与其他人分开,这个神奇宝贝似乎会变得紧张。”]

我想我可能可以用
regex做点什么,但这只是猜测。

由于原始文本数据具有“特殊unicode字符”(实际上不可打印),您很可能面临重新编码问题

比如说,

\xad
是来自的软连字符,我相信在您的案例中不需要它们

这些字符用于标记在将行装配到页面时可以拆分单词的位置。其思想是,如果单词不需要拆分,则软连字符是不可见的,但如果需要拆分,则打印时与U+2010普通连字符相同

由于您不关心在具有流畅文本的书中呈现此文本,因此永远不会对任何内容进行断字,因此您只想删除这些字符

\x0c
是表单提要还是

\n
是新的一行,在你的情况下,我也相信这与使文本更漂亮有关,你也不在乎它

因此,完整的解决方案是,使用
re.sub
(替换/替换):

  • 要删除
    \xad
    \xad\x0c
  • \x0c
    \n

  • 雌性的角发育缓慢。喜欢物理攻击,如抓和咬

    在洞穴深处休息时,它的刺总是缩回。这证明它是放松的

    当喂养幼兽时,它首先咀嚼食物并使之变软,然后将食物吐给后代


    由于原始文本数据具有“特殊unicode字符”(实际上不可打印),您很可能面临重新编码问题

    比如说,

    \xad
    是来自的软连字符,我相信在您的案例中不需要它们

    这些字符用于标记在将行装配到页面时可以拆分单词的位置。其思想是,如果单词不需要拆分,则软连字符是不可见的,但如果需要拆分,则打印时与U+2010普通连字符相同

    由于您不关心在具有流畅文本的书中呈现此文本,因此永远不会对任何内容进行断字,因此您只想删除这些字符

    \x0c
    是表单提要还是

    \n
    是新的一行,在你的情况下,我也相信这与使文本更漂亮有关,你也不在乎它

    因此,完整的解决方案是,使用
    re.sub
    (替换/替换):

  • 要删除
    \xad
    \xad\x0c
  • \x0c
    \n

  • 雌性的角发育缓慢。喜欢物理攻击,如抓和咬

    在洞穴深处休息时,它的刺总是缩回。这证明它是放松的

    当喂养幼兽时,它首先咀嚼食物并使之变软,然后将食物吐给后代


    从示例字符串中,您似乎不希望实际删除不可打印的字符,而是将其替换为空格,在这种情况下,您可以使用与不可打印字符的字符集匹配的模式来使用
    re.sub

    import re
    flavor = re.sub(r'[\x00-\x1f]+', ' ', flavor)
    

    从示例字符串中,您似乎不希望实际删除不可打印的字符,而是将其替换为空格,在这种情况下,您可以使用与不可打印字符的字符集匹配的模式来使用
    re.sub

    import re
    flavor = re.sub(r'[\x00-\x1f]+', ' ', flavor)
    

    这回答了你的问题吗?是吗
    import re
    flavor = re.sub(r'[\x00-\x1f]+', ' ', flavor)