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

Python中无需正则表达式,为特定单词在无空格处添加前后空格的实现方法

解决仅为无空格的"school"添加前后空格的问题(忽略大小写)

嘿,我刚好碰到过类似的需求,不用正则表达式的话,拆分单词逐个处理的方法既靠谱又容易理解,还能完美保留原字符串的大小写,不会在已有空格的地方乱加空格!

为什么原来的方法不行?

你之前用的txt1.lower().replace("school"," school ")有两个明显问题:

  • 会把所有"school"(不管前后有没有空格)都替换成带前后空格的版本,导致原本正常的空格变成重复空格;
  • 直接把整个字符串转成小写,破坏了原有的大小写格式(比如Krish、Mahesh这些首字母大写的单词都变成小写了)。

最优解决方案(无正则)

核心思路是:把字符串拆成单个单词,只处理那些和"school"连在一起的单词,处理完再重新拼接。

步骤1:编写单词处理函数

这个函数会检查单个单词里是否包含"school"(忽略大小写),如果有就拆分并添加空格,没有就直接返回原单词:

def process_single_word(word):
    lower_word = word.lower()
    school_index = lower_word.find("school")
    if school_index == -1:
        # 单词里没有school,直接返回
        return word
    
    # 拆分单词为前缀、school部分、后缀
    prefix = word[:school_index]
    school_segment = word[school_index:school_index+6]  # "school"刚好6个字符
    suffix = word[school_index+6:]
    
    # 拼接成带空格的形式,只在需要的地方加空格
    processed_parts = []
    if prefix:
        processed_parts.append(prefix)
    processed_parts.append(school_segment)
    if suffix:
        processed_parts.append(suffix)
    
    return " ".join(processed_parts)

步骤2:处理整个字符串

把原字符串按空格拆分,逐个处理单词后再重新拼接:

txt1 = "Krish is a school boy and Mahesh is anotherschool boy, Gang is good schoolboy"

# 拆分单词→处理每个单词→重新拼接
processed_words = [process_single_word(word) for word in txt1.split()]
final_result = " ".join(processed_words)

print(final_result)

输出结果

Krish is a school boy and Mahesh is another school boy, Gang is good school boy

这个方法的优势

  • 完全不用正则,逻辑简单易懂;
  • 保留原字符串的所有大小写格式;
  • 只处理那些和其他字符连在一起的"school",不会在已有空格的位置添加额外空格;
  • 能处理"school"在单词开头(如schoolboy)、结尾(如anotherschool)的所有情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 21:39:11