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

如何拆分{{与}}包裹的字符串并提取两者中间的内容

提取{{}}包裹内容的实现方法

核心逻辑是通过正则表达式的非贪婪匹配,捕获{{和}}中间的所有内容,不同编程语言的实现如下:

正则说明

使用{{(.*?)}}作为匹配规则:

  • 外层的{{和}}匹配包裹符号
  • 括号()为捕获组,用来提取两个符号中间的内容
  • .*?为非贪婪匹配,保证只会匹配到距离最近的}},避免多段匹配出错

各语言实现示例

JavaScript

const inputStr = "{{number1}} + {{number2}} > {{number3}}";
const matchRegex = /{{(.*?)}}/g;
const result = [];
let currentMatch;
while ((currentMatch = matchRegex.exec(inputStr)) !== null) {
    result.push(currentMatch[1]);
}
// 输出结果:['number1', 'number2', 'number3']
console.log(result);

Python

import re

input_str = "{{number1}} + {{number2}} > {{number3}}"
result = re.findall(r"{{(.*?)}}", input_str)
# 输出结果:['number1', 'number2', 'number3']
print(result)

Java

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ExtractContent {
    public static void main(String[] args) {
        String inputStr = "{{number1}} + {{number2}} > {{number3}}";
        Pattern pattern = Pattern.compile("\\{\\{(.*?)\\}\\}");
        Matcher matcher = pattern.matcher(inputStr);
        List<String> result = new ArrayList<>();
        while (matcher.find()) {
            result.add(matcher.group(1));
        }
        // 输出结果:[number1, number2, number3]
        System.out.println(result);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 15:15:02