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

如何提取字符串中指定分隔符前的所有值并存入列表

字符串等号前字段提取方案

问题说明

待处理原始字符串:

asaa=tcp:192.168.40.1:1119 dsae=tcp:192.168.40.2:1115 dem=tcp:192.168.40.3:1117 ape=tcp:192.168.40.4:1116

目标:提取所有等号前的字段,输出规范列表:asaa、dsae、dem、ape

可直接运行的实现代码

Python 实现

方法1:原生字符串分割(无依赖,逻辑最直观)

核心逻辑:

  • 先按空白字符拆分原字符串,得到多个键=值格式的片段
  • 每个片段按等号分割,取第一个元素即为目标字段
  • 所有结果收集为列表
raw_str = "asaa=tcp:192.168.40.1:1119 dsae=tcp:192.168.40.2:1115 dem=tcp:192.168.40.3:1117 ape=tcp:192.168.40.4:1116"
result = [item.split("=")[0] for item in raw_str.split()]
print(result)

运行输出:

['asaa', 'dsae', 'dem', 'ape']

方法2:正则匹配(容错性更强)

适合原字符串存在多空格、换行、制表符分隔的不规则场景:

import re

raw_str = "asaa=tcp:192.168.40.1:1119 dsae=tcp:192.168.40.2:1115 dem=tcp:192.168.40.3:1117 ape=tcp:192.168.40.4:1116"
result = re.findall(r"([a-zA-Z]+)=", raw_str)
print(result)

正则逻辑说明:匹配所有紧跟等号的连续字母序列,自动捕获等号前的目标内容,无需手动处理分隔符。

Shell 命令行实现

无需写脚本,一行命令直接出结果:

echo "asaa=tcp:192.168.40.1:1119 dsae=tcp:192.168.40.2:1115 dem=tcp:192.168.40.3:1117 ape=tcp:192.168.40.4:1116" | awk -v RS=' ' -F'=' '{print $1}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:36:28