【问题标题】:Python: Remove all types of bullet points from a stringPython:从字符串中删除所有类型的项目符号
【发布时间】:2021-10-29 09:46:09
【问题描述】:

正如问题所述.. 我的要求是删除所有类型的项目符号(“•”、“●”....)。

奇怪的是,我正在使用 open(FilePath,encoding="utf8") 从 Python 代码打开一个文件,并将所有数据存储在一个变量中,并且项目符号以字符串而不是 /u____ 的形式出现。

现在我想通过正则表达式或任何逻辑替换所有这些项目符号。

可以请人给我一些东西吗??

【问题讨论】:

  • 文字 unicode 转义序列与其对应的符号完全等价。例如,文字 "\u0041""A" 表示完全相同的字符串。请edit 您的问题澄清您是在处理 unicode 符号、等效转义序列还是转义序列的文本表示(例如,"\\u0041" 用于前面的示例)。

标签: python python-re


【解决方案1】:

你可以使用 STRING.replace(),就像这样:

my_string = my_string.replace('•', '')

这将用任何内容代替项目符号。

【讨论】:

  • 不知道为什么,但答案中没有显示要点所以这里是正确的版本,my_string = my_string.replace(':', '')
  • 当且仅当字符串具有一种类型的项目符号点时,这是一个可行的解决方案。但是,它不适用于所有类型。为所有人写出替换语句是一条不应该使用的冗长路径。感谢您的回答。
  • 注意str.translate更适合移除多个不同的符号。
【解决方案2】:

我找到了解决办法。

我从来没有想到这与删除/替换项目符号无关。但是,这一切都是关于考虑除此之外的文本。听起来一样,但在编程上有所不同。

解决办法:我用了re。

My_All_File_Text_With_Bullets = re.sub('[^a-zA-Z0-9 \n\.]', ' ', My_All_File_Text_With_Bullets)

这就像一个魅力。

【讨论】:

  • 请注意,这仅适用于极窄的“文本”子集。许多非英语语言,甚至是英语的重要部分,使用的字母多于 ASCII 字母数字字符。
猜你喜欢
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 2014-04-26
  • 2021-09-02
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
相关资源
最近更新 更多