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

如何在VB.NET中将含字母与整数的字符串解析为对应变量?

字符串解析简便方案

不用逐个字符处理,正则表达式是最简洁高效的解决方式,直接匹配前缀非数字部分和两个数字段即可。

Python 实现

使用正则表达式匹配固定格式,一步拆分出目标变量:

import re

def parse_target_string(s):
    # 正则模式:匹配开头非数字 + 数字 + 短横线 + 数字
    pattern = re.compile(r'^([^\d]+)(\d+)-(\d+)$')
    match_result = pattern.match(s)
    if match_result:
        str_var = match_result.group(1)
        int_var1 = int(match_result.group(2))
        int_var2 = int(match_result.group(3))
        return str_var, int_var1, int_var2
    # 格式不匹配时抛出异常或返回默认值
    raise ValueError("输入字符串不符合指定格式")

# 测试示例
test_samples = ["A1-8", "AN9-16", "OUT16-24", "CARD32-40"]
for sample in test_samples:
    sv, iv1, iv2 = parse_target_string(sample)
    print(f"StrVar = \"{sv}\"\nIntVar1 = {iv1}\nIntVar2 = {iv2}\n")

JavaScript 实现

同样用正则快速拆分:

function parseTargetString(s) {
    const regex = /^([^\d]+)(\d+)-(\d+)$/;
    const match = s.match(regex);
    if (match) {
        return {
            strVar: match[1],
            intVar1: parseInt(match[2], 10),
            intVar2: parseInt(match[3], 10)
        };
    }
    throw new Error("输入字符串格式错误");
}

// 测试
const testSamples = ["A1-8", "AN9-16", "OUT16-24", "CARD32-40"];
testSamples.forEach(sample => {
    const res = parseTargetString(sample);
    console.log(`StrVar = "${res.strVar}"\nIntVar1 = ${res.intVar1}\nIntVar2 = ${res.intVar2}\n`);
});

模式说明

正则模式^([^\d]+)(\d+)-(\d+)$的含义:

  • ^([^\d]+):匹配字符串开头的所有非数字字符,作为前缀变量
  • (\d+):匹配第一个连续数字段,转成整数
  • -:匹配分隔用的短横线
  • (\d+)$:匹配结尾的第二个连续数字段,转成整数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:50:02