如何从指定数据数组提取89011337751并写入变量?支持bash/PowerShell吗?
提取指定值并写入变量的实现方法
你可以通过Bash、PowerShell、Python等多种脚本语言实现需求,以下是具体方案:
Bash 实现
先将目标字符串存入变量,再通过文本处理工具提取值:
# 定义输入字符串 input="[U8EUGGG1C32144101336_gulu, V5EUHHG1P12100100418_89011337751, V5EUHHG1P22111000028_89011337751]" # 提取目标值并存入变量(精准匹配) target_val=$(echo "$input" | grep -o '_89011337751' | head -n1 | cut -d'_' -f2) # 验证结果 echo $target_val
如果需要通用提取下划线后的唯一数字串:
target_val=$(echo "$input" | grep -o '_[0-9]*' | sort -u | cut -d'_' -f2)
PowerShell 实现
利用正则匹配快速定位目标值:
# 定义输入字符串 $inputStr = "[U8EUGGG1C32144101336_gulu, V5EUHHG1P12100100418_89011337751, V5EUHHG1P22111000028_89011337751]" # 提取第一个匹配的目标值 $targetVal = [regex]::Match($inputStr, '_(\d{11})').Groups[1].Value # 去重版本(确保仅保留唯一值) $targetVal = ($inputStr | Select-String -Pattern '_(\d{11})' -AllMatches | ForEach-Object { $_.Matches.Groups[1].Value } | Get-Unique) # 验证结果 $targetVal
Python 实现
适合复杂字符串解析场景:
input_str = "[U8EUGGG1C32144101336_gulu, V5EUHHG1P12100100418_89011337751, V5EUHHG1P22111000028_89011337751]" import re # 提取所有匹配的数字串 matches = re.findall(r'_(\d{11})', input_str) # 取第一个匹配值,或去重后取唯一值 target_val = matches[0] if matches else None # 去重版本 target_val = list(set(matches))[0] if matches else None print(target_val)
内容的提问来源于stack exchange,提问作者Vitaliy Kuzmenko
相关产品推荐
相关产品推荐

