You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正则替换:保留空格数量仅移除字符串'no'

解决方法

你的问题出在正则表达式写错了:^\s.+no会匹配从字符串开头的空格开始,一直到no的所有内容,替换后开头的空格和no一起被删除,才得到' command'。

下面是两种符合需求的写法:

方法1:仅删除独立的no单词(保留所有原有空格)

如果只想删掉no这个单词,保留所有空格(包括no前后的空格),可以用单词边界匹配:

import re
line = '         no command'            
line = re.sub(r'\bno\b', '', line) 
print(repr(line))  # 输出:'          command'

\b是单词边界,确保只匹配单独的no,不会误删类似not里的no。

方法2:删除no及其后的空格(匹配你的期望输出)

如果要得到' command'(开头空格数量不变,command直接接在后面),可以把no和它后面的空格一起替换掉:

import re
line = '         no command'            
line = re.sub(r'\bno\s+', '', line) 
print(repr(line))  # 输出:'         command'

\s+匹配一个或多个空格,能把no后面的空格一并删除。

更简单的非正则写法

如果确定字符串里只有这一处no,直接用字符串替换更高效:

line = '         no command'
line = line.replace('no ', '')  # 替换'no '为空字符串
print(repr(line))  # 输出:'         command'

内容的提问来源于stack exchange,提问作者superloopnetworks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:01:17