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

如何替换字符串中大括号内的文本(选项以|分隔)

解决字符串占位符替换问题

我来帮你搞定这个大括号内文本的替换需求!看起来你需要根据性别选择,把字符串里{key:option1|option2}格式的占位符替换成对应选项,下面是具体的Python实现方案:

思路分析

你的字符串里的占位符格式是{标识名:选项1|选项2},核心需求是根据预设规则(比如选择女性/男性),把每个占位符替换成对应的选项。我们可以用正则表达式匹配所有占位符,再通过自定义替换逻辑完成替换。

代码实现

import re

def replace_gender_placeholders(text, target_gender):
    # 定义每个标识对应的选项索引:女性选第0个,男性选第1个
    gender_index_map = {
        'female_character': 0 if target_gender == 'female' else 1
        # 如果后续有其他标识(比如male_character),可以在这里继续添加映射
    }
    
    def replace_match(match_obj):
        # 从匹配结果中提取标识名和选项字符串
        key = match_obj.group(1)
        option_str = match_obj.group(2)
        options = option_str.split('|')
        # 根据映射返回对应选项,默认取第一个选项防止出错
        return options[gender_index_map.get(key, 0)]
    
    # 正则匹配 {key:option1|option2} 格式的占位符
    placeholder_pattern = r'\{(\w+):([^}]+)\}'
    return re.sub(placeholder_pattern, replace_match, text)

# 你的原始字符串
original_str = "As soon as {female_character:Aurelia|Aurelius} 转过街角,{female_character:she|he} 意识到走错了路,最终会走进一条死胡同。转身之际,{female_character:Aurelia|Aurelius} 试图往回跑,但路已被小贩堵住。在这条黑暗的小巷里,没人会看到或关心这个落魄乞丐出身的小偷遭遇了什么。Should {female_character:she|he} call for help?"

# 生成女性版本文本
female_version = replace_gender_placeholders(original_str, 'female')
print("=== 女性版本 ===")
print(female_version)

# 生成男性版本文本
male_version = replace_gender_placeholders(original_str, 'male')
print("\n=== 男性版本 ===")
print(male_version)

输出结果

女性版本

As soon as Aurelia 转过街角,she 意识到走错了路,最终会走进一条死胡同。转身之际,Aurelia 试图往回跑,但路已被小贩堵住。在这条黑暗的小巷里,没人会看到或关心这个落魄乞丐出身的小偷遭遇了什么。Should she call for help?

男性版本

As soon as Aurelius 转过街角,he 意识到走错了路,最终会走进一条死胡同。转身之际,Aurelius 试图往回跑,但路已被小贩堵住。在这条黑暗的小巷里,没人会看到或关心这个落魄乞丐出身的小偷遭遇了什么。Should he call for help?

扩展说明

  • 如果需要新增其他类型的占位符,只需要在gender_index_map里添加对应的标识和索引规则即可;
  • 如果想要随机选择选项,可以把索引逻辑改成random.randint(0, len(options)-1)(记得先导入random模块);
  • 正则表达式已经考虑了选项里不含大括号的情况,如果你的占位符里有特殊字符,可以根据实际情况调整正则规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:04:58