具有不可见字符的新行不会换行吗?

Posted

技术标签:

【中文标题】具有不可见字符的新行不会换行吗?【英文标题】:New line with invisible character not makes a line break? 【发布时间】:2021-03-17 22:57:36 【问题描述】:

我有一个这样显示的字符串:

def function():
  my_string = """Balabala
  -
  Blala2: lala
  -
  Blala#End
  """

所有空行都有那个不可见的字符(字符:⠀)。

当我打印那个字符串时,我得到:

Balabala
-Blala2: lala
-Blala#End

- 是一个隐形字符。 *** 不允许那个不可见的字符。 python 应该打印什么:

Balabala
-
Balala2: lala
-
Blala#End

有人对我有什么建议或解决方案吗?

编辑:我使用该字符串作为 Instagram 图片描述。 Instagram 不允许没有字符的换行符。由于这个限制,我搜索了一个隐形字符。现在我想在我的字符串中实现那个不可见的字符。

【问题讨论】:

您的隐形字符似乎是“盲文图案空白”,如果它确实是您复制粘贴的内容。如果要删除它,可以将其替换为空字符串:my_string = my_string.replace('⠀', '') 我无法替换或删除它。因为我需要那种模式。 @Manuservus 我在我的程序中测试了隐形字符;它有效。 那么您的问题到底是什么?如果您不想删除它,并且无论如何都看不到它打印,那么您的问题是什么?请澄清... 如果您的字符串包含您想要的字符,并且没有按预期打印,则问题出在您的终端上。下一个问题是,这对您的用例重要吗? 【参考方案1】:

您可以使用列表推导过滤掉不可见的字符:

my_string = """Balabala

Blala2: lala

Blala#End
"""

my_string = ''.join(char for char in my_string if char.isascii())

print(my_string)

输出:

Balabala

Blala2: lala

Blala#End

【讨论】:

我需要那个隐形角色。我无法过滤掉它。 @Manuservus 那该怎么办呢? 我想我没有很好地澄清这个问题。我编辑了这个问题,现在更好理解了。

以上是关于具有不可见字符的新行不会换行吗?的主要内容,如果未能解决你的问题,请参考以下文章

在没有可见空间的情况下包装 GridView 文本

PHP / JS;将不可见的换行符或换行符转换为html标记以进行打印

sublime text 3 如何配置才能显示空格,tab 换行等不可见字符?

php 正则表达式

C#/WPF:禁用 RichTextBox 的文本换行

js正则表达式——元字符