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

如何获取符合特定模式的变量及变量集的值?指定模式为"number"

获取特定模式变量值的实现方案

嘿,这个需求挺常见的,我分几种主流编程语言的场景给你详细说说怎么实现:

Python 场景

在Python里,你可以借助全局/局部变量字典(globals() 或 locals())结合字符串匹配或正则表达式来筛选目标变量。

基础匹配(以"number"开头)

比如你定义了几个变量,想把所有以"number"开头的变量值捞出来:

# 测试用变量
number1 = 10
number2 = 20
text_msg = "hello world"
number_extra = 30

# 筛选并收集变量
target_vars = {var_name: var_value for var_name, var_value in globals().items() 
               if var_name.startswith("number")}

print(target_vars)
# 输出结果: {'number1': 10, 'number2': 20, 'number_extra': 30}

精确正则匹配

如果需要更严格的模式(比如"number"后面必须跟数字),可以用re模块做正则匹配:

import re

target_vars = {var_name: var_value for var_name, var_value in globals().items() 
               if re.match(r'^number\d+$', var_name)}

print(target_vars)
# 输出结果: {'number1': 10, 'number2': 20}

Bash 脚本场景

在Shell环境中,你可以利用变量展开语法来筛选特定前缀的变量:

# 先定义几个测试变量
number1=5
number2=15
random_text="test content"

# 遍历所有以"number"开头的变量并输出值
for var in "${!number@}"; do
    echo "变量名: $var,对应值: ${!var}"
done

运行后会输出:

变量名: number1,对应值: 5
变量名: number2,对应值: 15

这里${!number@}会自动展开所有以number开头的变量名,${!var}是间接引用变量的值。

JavaScript 场景

全局变量筛选

如果变量是全局作用域的,可以通过全局对象(浏览器是window,Node.js是globalThis)遍历筛选:

// 定义全局变量
let number1 = 100;
const number2 = 200;
let non_target = "foo";

// 获取全局对象
const globalObj = typeof window !== 'undefined' ? window : globalThis;

// 筛选目标变量
const targetVars = {};
for (const key in globalObj) {
    if (key.startsWith('number')) {
        targetVars[key] = globalObj[key];
    }
}

console.log(targetVars);
// 输出: {number1: 100, number2: 200}

局部变量推荐方案

局部变量没法直接遍历,建议一开始就把变量放到对象里,这样筛选更灵活:

// 把变量统一放在对象中管理
const myVars = {
    number1: 10,
    number2: 20,
    text: "bar"
};

// 筛选符合模式的变量
const targetVars = Object.fromEntries(
    Object.entries(myVars).filter(([key]) => key.startsWith('number'))
);

console.log(targetVars);
// 输出: {number1: 10, number2: 20}

核心思路总结

不管用哪种语言,核心步骤都是这三步:

  1. 拿到包含所有目标变量的集合(字典、对象或变量列表)
  2. 通过字符串匹配或正则表达式筛选出符合"number"模式的变量名
  3. 间接获取这些变量名对应的具体值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:44:24