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

Python:找到指定关键词后将后续子串设为变量的实现方法

提取前置子串后的目标内容

嘿,这个需求其实很好解决,我给你两种实用方案,你可以根据场景挑选:

方法1:字符串find+切片(简单直观,无需额外模块)

你已经用find()定位到了前置子串的位置,接下来只需要计算目标内容的起始点,直接截取字符串就行。代码示例如下:

string = " will you reset password for johnny.mnemonic please"
substring = "reset password for"

start_idx = string.find(substring)
if start_idx != -1:
    # 计算目标内容的起始位置:子串起始索引 + 子串本身的长度
    target_start_pos = start_idx + len(substring)
    # 截取后面的内容,用strip()去掉前后多余空格
    target_content = string[target_start_pos:].strip()
    
    # 如果只需要提取第一个空格前的内容(比如去掉示例里的"please"),可以加这步
    # target_content = string[target_start_pos:].strip().split()[0]
    
    print(f"提取到的目标内容:{target_content}")
    # 现在target_content就是你要存的变量啦

方法2:正则表达式(适合复杂匹配场景)

如果你的前置子串可能有变体(比如大小写差异、多空格),或者需要更灵活的匹配规则,用正则会更省心:

import re

string = " will you reset password for johnny.mnemonic please"
# 正则模式:匹配前置子串,捕获后面的内容(非贪婪匹配到字符串结束)
pattern = r'reset password for\s+(.*)'

match_result = re.search(pattern, string)
if match_result:
    target_content = match_result.group(1).strip()
    # 同样,要去掉后续额外内容可以调整正则或用split
    # target_content = match_result.group(1).strip().split()[0]
    print(f"提取到的目标内容:{target_content}")

第一种方法适合固定简单的场景,上手快;第二种更灵活,能应付各种复杂情况~

内容的提问来源于stack exchange,提问作者Wacky Mode-On

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:13:21