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

如何获取字符串中首次出现的两个指定字符间的内容?(优先非正则)

在Python中获取字符串两个首次出现字符间的内容(避免正则)

要实现需求里的功能——提取字符串中首次出现的两个指定字符之间的所有内容,完全可以不用正则,靠字符串的索引和切片就能搞定,下面是具体实现:

实现思路

  1. 找到起始字符在字符串中第一次出现的位置
  2. 从起始位置的下一位开始,找到结束字符第一次出现的位置
  3. 通过字符串切片提取两个位置之间的内容
  4. 处理边界情况(比如字符不存在、起始位置晚于结束位置等)

代码实现

独立函数版本

def get_between(s: str, start_char: str, end_char: str) -> str:
    try:
        start_idx = s.index(start_char)
        # 从起始字符的下一位开始找结束字符
        end_idx = s.index(end_char, start_idx + 1)
        return s[start_idx + 1 : end_idx + 1]
    except ValueError:
        # 起始或结束字符不存在时返回空字符串
        return ""

# 测试示例
string = "aabcdefgg"
print(get_between(string, "a", "g"))  # 输出: abcdefg

字符串方法扩展版本(和示例调用方式一致)

如果想要像示例那样直接用string.inbetween()的调用方式,可以给str类添加自定义方法:

def str_inbetween(self, start_char: str, end_char: str) -> str:
    try:
        start_idx = self.index(start_char)
        end_idx = self.index(end_char, start_idx + 1)
        return self[start_idx + 1 : end_idx + 1]
    except ValueError:
        return ""

# 给str类绑定方法
str.inbetween = str_inbetween

# 测试示例
string = "aabcdefgg"
print(string.inbetween("a", "g"))  # 输出: abcdefg

边界情况说明

  • 如果起始字符不存在,或者结束字符在起始字符之后不存在,函数会返回空字符串
  • 如果起始字符的位置晚于结束字符的位置(比如起始在结束之后才出现),同样返回空字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:05:20