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

如何满足条件时删除指定字符间的文本及限定符

特定场景下的文本匹配与删除实现

一、函数调用场景处理

针对choice()函数的参数处理规则:若左括号后第一个参数不以双引号开头,删除该参数(含后续逗号);若参数以双引号开头,则保留原内容。

实现代码

import re

def process_function_calls(text):
    # 匹配choice(后不以双引号开头的首个参数(含逗号),替换为括号后跟空格
    return re.sub(r'choice\((?!"[^"]*")\s*[^,]+,\s*', r'choice( ', text)

测试示例

  • 输入:choice(IN1T, endless ) → 输出:choice( endless )
  • 输入:choice("ENDMAN", endless ) → 输出:choice("ENDMAN", endless )

二、花括号场景处理

针对{}包裹的内容:若整个包裹块(含{})的字符数≤14,则删除整个块;否则保留。

实现代码

def process_braces(text):
    def filter_brace_content(match):
        matched_block = match.group(0)
        # 判断块长度,符合条件则删除
        return '' if len(matched_block) <= 14 else matched_block
    # 匹配所有{}包裹的内容,通过回调函数判断是否删除
    return re.sub(r'\{[^{}]*\}', filter_brace_content, text)

测试示例

  • 输入:{sometext here} → 该块长度为13,符合删除条件,输出空字符串(若原文本仅含此块);若原文本为Hello {sometext here} World,输出Hello World

组合处理

若需要同时处理两种场景,可将两个函数结合:

def process_text(text):
    text = process_function_calls(text)
    text = process_braces(text)
    return text

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:25:16