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

如何从3000条含数字字符串中筛选特定格式记录并分割为两列

嘿,针对你要处理的3000条混合格式字符串记录,我整理了几种实用的方案,帮你精准筛选出仅由纯数字-纯数字组成的条目并拆分成两列:

1. Excel/Google Sheets 可视化处理方案

适合习惯用表格工具的场景,分两步走:

第一步:筛选符合条件的记录

添加一个辅助列(比如B列),在B1单元格输入以下公式,下拉填充到所有行:

=AND(ISNUMBER(--LEFT(A1,FIND("-",A1)-1)),ISNUMBER(--RIGHT(A1,LEN(A1)-FIND("-",A1))),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))=1)

这个公式会同时检查三个核心条件:

  • 连字符左侧的内容是纯数字
  • 连字符右侧的内容是纯数字
  • 整个字符串只有一个连字符
    返回TRUE的行就是你要保留的目标记录,接着用表格的「筛选」功能,把辅助列为TRUE的行单独筛选出来。

第二步:拆分列

选中筛选后的目标列,点击「数据」→「分列」,选择「分隔符号」选项,勾选「其他」并输入-,确认后就能自动拆分成两列。

2. Python 批量自动化方案

如果需要处理大量数据或者后续要重复操作,用Python脚本更高效:

import re
import csv

# 替换成你的数据文件路径,或者直接传入记录列表
input_records = []
with open("your_records.csv", "r", encoding="utf-8") as f:
    reader = csv.reader(f)
    # 跳过表头(如果有的话)
    next(reader)
    for row in reader:
        input_records.append(row[0])

# 匹配纯数字-纯数字的正则规则
valid_pattern = re.compile(r'^\d+-\d+$')

# 筛选并拆分数据
output_data = [["1st Column", "2nd Column"]]
for record in input_records:
    if valid_pattern.match(record):
        left_part, right_part = record.split("-")
        output_data.append([left_part, right_part])

# 将结果保存到新的CSV文件
with open("filtered_split_result.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(output_data)

# 也可以直接打印结果预览
print("筛选拆分结果预览:")
for row in output_data[1:]:
    print(f"{row[0]} | {row[1]}")

运行脚本后,会生成一个包含筛选后拆分数据的CSV文件,直接就能用表格工具打开。

3. SQL 数据库查询方案

如果数据存储在数据库中,用正则匹配查询就能直接得到结果:

SELECT
    SUBSTRING_INDEX(your_column_name, '-', 1) AS `1st Column`,
    SUBSTRING_INDEX(your_column_name, '-', -1) AS `2nd Column`
FROM your_table_name
WHERE your_column_name REGEXP '^[0-9]+-[0-9]+$';

这个查询会自动筛选出符合格式的记录,并直接拆分成两列返回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:26:23