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

特殊字符后数据截断处理:从指定字符串提取国家名称列表

提取字符串中的国家名称并格式化

需求说明

输入字符串:

INDIA-001 UNIT1-RUNNING, AUSTRIA-002 UNIT2-RUNNING, CHINA-003 UNIT1-RUNNING , JAPAN-004 UNIT2-ONHOLD.,

需要处理成仅包含国家名称的结果:

INDIA,AUSTRIA,CHINA,JAPAN

几种实用处理方法

方法1:Python代码实现

通过字符串分割提取核心内容,逻辑直白:

input_str = "INDIA-001 UNIT1-RUNNING, AUSTRIA-002 UNIT2-RUNNING, CHINA-003 UNIT1-RUNNING , JAPAN-004 UNIT2-ONHOLD.,"
# 按逗号拆分条目,过滤空内容并去除前后空格
items = [item.strip() for item in input_str.split(',') if item.strip()]
# 提取每个条目里第一个'-'之前的国家名
countries = [item.split('-')[0] for item in items]
# 用逗号拼接成最终结果
result = ','.join(countries)
print(result)

方法2:正则表达式匹配

用正则直接定位所有国家名的特征(大写字母后跟-),一次性提取:

import re
input_str = "INDIA-001 UNIT1-RUNNING, AUSTRIA-002 UNIT2-RUNNING, CHINA-003 UNIT1-RUNNING , JAPAN-004 UNIT2-ONHOLD.,"
# 匹配所有大写字母组成、后面紧跟'-'的字符串
countries = re.findall(r'[A-Z]+(?=-)', input_str)
result = ','.join(countries)
print(result)

方法3:Linux命令行工具(sed)

终端环境下直接用sed批量替换冗余内容:

echo "INDIA-001 UNIT1-RUNNING, AUSTRIA-002 UNIT2-RUNNING, CHINA-003 UNIT1-RUNNING , JAPAN-004 UNIT2-ONHOLD.," | sed -E 's/(-[0-9]+ [A-Z0-9-]+,? *)|(\.$)//g' | sed 's/ /,/g'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:12:14