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

如何在Python中基于指定单词实现文本分割?

按指定单词分割文本的实现方案

要实现将文本从指定单词的第N次出现位置分割成两部分(如你给出的例子),可以用Python通过正则匹配定位目标单词的位置,再完成分割。以下是具体实现:

核心代码实现

import re

def split_text_at_word(text, target_word, split_at_occurrence=2, case_sensitive=True):
    # 编译正则匹配规则,支持大小写敏感/不敏感
    match_pattern = re.compile(
        re.escape(target_word),
        re.IGNORECASE if not case_sensitive else 0
    )
    # 找到所有目标单词的匹配位置
    all_matches = list(match_pattern.finditer(text))
    
    # 如果目标单词出现次数不足指定次数,返回原文本
    if len(all_matches) < split_at_occurrence:
        return [text]
    
    # 获取第split_at_occurrence次出现的单词位置
    target_match = all_matches[split_at_occurrence - 1]
    # 分割文本,清理分割处的多余空格
    part1 = text[:target_match.start()].rstrip()
    part2 = text[target_match.start():].lstrip()
    
    return [part1, part2]

测试示例

# 你的示例句子
test_sentence = "I have an apple and I want to eat it."
# 从第2次出现的"I"处分割
result = split_text_at_word(test_sentence, "I")
print(result)
# 输出: ['I have an apple and', 'I want to eat it.']

功能说明

  • 支持指定分割目标单词的第N次出现(默认是第2次,符合你的示例需求)
  • 可通过case_sensitive参数控制是否区分大小写(默认区分)
  • 如果目标单词出现次数不足指定次数,会直接返回原文本作为单个元素的列表
  • 自动清理分割处的多余空格,保证结果格式整洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:13:07