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

PowerQuery如何提取列中第一个字母及其之前的所有内容?

提取首个字母及之前内容的数据清理方案

Python 实现

利用正则表达式的非贪婪匹配,精准定位第一个字母并提取其及之前的所有内容:

import re

sample_data = ["12345A123", "23456B000", "45678D93"]
extracted_results = [re.search(r".*?[A-Za-z]", item).group() for item in sample_data]
print(extracted_results)  # 输出: ['12345A', '23456B', '45678D']

说明:.*? 会非贪婪匹配任意字符,直到遇到第一个大小写字母 [A-Za-z],group() 取出匹配到的完整内容。

Excel 实现

结合FIND、MIN、LEFT函数定位首个字母位置并提取:
假设数据在A列,在B列单元格输入以下公式(支持大小写字母):

=LEFT(A1, MIN(FIND({"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}, A1&"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")))

说明:FIND 遍历查找所有字母的位置,MIN 筛选出第一个出现的字母位置,LEFT 提取该位置及之前的内容。

SQL 实现(以MySQL/PostgreSQL为例)

MySQL

使用REGEXP_SUBSTR函数直接匹配提取:

SELECT REGEXP_SUBSTR(your_column, '.*?[A-Za-z]') AS extracted_content
FROM your_table;

PostgreSQL

通过SUBSTRING结合正则完成提取:

SELECT SUBSTRING(your_column FROM '.*?[A-Za-z]') AS extracted_content
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:45:10