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 re

s = " hello\tworld  \n" # 含空格、制表、全角空格、换行

错误:只去首尾

print(repr(s.strip())) # 'hello\tworld  \n'

错误:只去ASCII空格

print(repr(s.replace(" ", ""))) # '\thello\tworld \n'

正确:清所有Unicode空白

print(repr(re.sub(r"\s+", "", s))) # 'helloworld'

真正需要“彻底去空格”时,别想当然用 strip()replace(" ", "")re.sub(r"\s+", "") 才是覆盖最全的通用解,但得留意它是否真符合你的空白定义——比如要不要保留换行符,或者是否要兼容某些特殊空格(如零宽空格 \u200b),那就要手动扩展正则模式了。


# python  # 表单提交 


相关栏目: 【 网站优化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进行授权?(权限控制)