Python把字符串去掉空格_字符串去除空格的多种实现方式
发布时间 - 2026-01-09 00:00:00 点击率:次str.strip()仅去除首尾空白,不处理中间空格;replace(" ", "")只删ASCII空格;translate()高效但需预设映射;re.sub(r"\s+", "")可清除所有Unicode空白字符,是最彻底的通用方案。
str.strip() 只能去掉首尾空格,不是全量去空格
很多人一上来就用 str.strip(),结果发现中间的空格还在。它只处理字符串开头和结尾的空白字符(包括 ' '、'\t'、'\n' 等),对中间的空格完全没影响。
适用场景:清理用户输入前后可能误粘的空格,比如表单提交前校验。
-
" hello world ".strip()→"hello world" -
" hello world ".strip()→"hello world"(中间三个空格保留)
replace(" ", "") 和 translate() 适合纯空格替换
如果只要干掉所有 ASCII 空格(即 ' ' 字符),不用管制表符或换行符,replace() 最直白;想同时清除多种空白字符且追求性能,translate() 更快。
注意:replace(" ", "") 对 '\t' 或 '\n' 无效;而 translate() 需要提前构造映射表,稍显繁琐但一次编译可复用。
-
"hello\tworld\n ".replace(" ", "")→"hello\tworld\n"(只去掉了末尾那个空格) -
"hello world".replace(" ", "")→"helloworld" -
"hello world".translate(str.maketrans("", "", " "))→"helloworld"
re.sub(r"\s+", "") 处理所有空白字符最彻底
正则 re.sub(r"\s+", "", s) 能匹配任意 Unicode 空白字符(空格、制表、换行、回车、分页符、甚至中文全角空格等),并全部替换成空字符串。这是真正“清空所有空白”的方案。
但要注意两点:一是正则有运行开销,短字符串不明显,高频调用需权衡;二是 \s 在 Python 中默认匹配 Unicode 空白,若明确只想处理 ASCII 空格,应改用 r"[ \t\n\r\f\v]+"。
import re-
re.sub(r"\s+", "", "hello\tworld\n ")→"helloworld" -
re.sub(r"\s+", "", "你好 world ")→"你好world"(中文全角空格也被清除)
split() + join() 会合并连续空白并丢弃首尾
" ".join(s.split()) 是个常用技巧,但它本质是「先按任意空白切分,再用单个空格拼接」,所以效果是把所有空白区域压缩成一个空格,而不是完全去除。
如果目标是彻底无空格,这个方法会出错;但如果只是想标准化空白(比如日志清洗、文本预处理),它比正则更轻量、无需 import。
-
" hello\t\tworld\n\n ".split()→["hello", "world"] -
" ".join(["hello", "world"])→"hello world" - 想得到
"helloworld"?不能直接用这个组合
import res = " hello\tworld \n" # 含空格、制表、全角空格、换行
错误:只去首尾
print(repr(s.strip())) # 'hello\tworld \n'
错误:只去ASCII空格
print(repr(s.replace(" ", ""))) # '\th
ello\tworld \n'
正确:清所有Unicode空白
print(repr(re.sub(r"\s+", "", s))) # 'helloworld'
真正需要“彻底去空格”时,别想当然用 strip() 或 replace(" ", "");re.sub(r"\s+", "") 才是覆盖最全的通用解,但得留意它是否真符合你的空白定义——比如要不要保留换行符,或者是否要兼容某些特殊空格(如零宽空格 \u200b),那就要手动扩展正则模式了。
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
详解MySQL数据库的安装与密码配置
phpredis提高消息队列的实时性方法(推荐)
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel如何使用withoutEvents方法临时禁用模型事件
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
如何快速查询域名建站关键信息?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何在IIS7中新建站点?详细步骤解析
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
JavaScript数据类型有哪些_如何准确判断一个变量的类型
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
浅谈javascript alert和confirm的美化
HTML 中动态设置元素 name 属性的正确语法详解
做企业网站制作流程,企业网站制作基本流程有哪些?
音乐网站服务器如何优化API响应速度?
html如何与html链接_实现多个HTML页面互相链接【互相】
,怎么在广州志愿者网站注册?
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
三星、SK海力士获美批准:可向中国出口芯片制造设备
JavaScript中的标签模板是什么_它如何扩展字符串功能
如何在局域网内绑定自建网站域名?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
JavaScript如何实现路由_前端路由原理是什么
canvas 画布在主流浏览器中的尺寸限制详细介绍
详解阿里云nginx服务器多站点的配置
如何快速查询网址的建站时间与历史轨迹?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
米侠浏览器网页背景异常怎么办 米侠显示修复
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Java遍历集合的三种方式
详解jQuery中基本的动画方法
java中使用zxing批量生成二维码立牌
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Laravel如何使用Vite进行前端资源打包?(配置示例)
Laravel如何使用Gate和Policy进行授权?(权限控制)


ello\tworld \n'