首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中删除从文本文件中读取的行中的特殊字符和字母?

如何在Python中删除从文本文件中读取的行中的特殊字符和字母?
EN

Stack Overflow用户
提问于 2010-07-14 11:03:44
回答 4查看 2.8K关注 0票数 0

如何删除从文本文件中读取的行中的特殊字符和字母,同时保留空格?假设我们在一个文件中有以下内容:

16 ` C38# 26535 26535 2010 4 14 2 7 7 38^@1 2 15 100 140 30 $ 14^] (2003年2!-6�021 0�14!2 3!1 0 35454 0$ ^@0 0 "0 "63 194 (56188 26 27“24 0 0 10�994!8 58 0 0”�0 32�47 32767 32767!1

输出结果基本上应该是:

16 38 26535 2010年4 14 2 7 7 3 8 1 2 15 100 140 30 14 2003 2 -6 021 014 2 3 1 0 35454 0 0 0 63 194 56 188 26 27 24 0 0 10 994 8 58 0 0 0 32 47 32767 32767 1

做这件事最直接的方法是什么?

EN

回答 4

Stack Overflow用户

发布于 2010-07-14 11:08:04

代码语言:javascript
运行
复制
import re

output_string = re.sub(r'[^\d\s-]', '', input_string)

模式[^\d\s-]将匹配除数字、破折号或空格以外的任何内容-因此,用空字符串替换任何匹配项将删除除数字(包括减号)和空格之外的所有内容。

票数 3
EN

Stack Overflow用户

发布于 2010-07-14 11:08:55

如果您只想保留数字、加号和减号以及所有空格,最简单的方法可能是

代码语言:javascript
运行
复制
import re
   ...
line = re.sub(r'[^\d\s+-]+', '', line)

其内容为“将每个序列中的一个或多个非数字非空格替换为空”。

字符串的translate方法会更快,但它的设置就不那么简单了,所以,既然您要求“简单”,我建议使用re方法(现在准备好迎接re-haters的尖叫声...;-)。

票数 1
EN

Stack Overflow用户

发布于 2010-07-14 11:15:51

代码语言:javascript
运行
复制
''.join([x for x in s if x in string.digits+string.whitespace])

或者,如果你真正想要的是一个数字列表:

代码语言:javascript
运行
复制
import re
re.findall('\d+',s)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3243131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档