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

Snowflake中提取两个下划线间内容的方法求助

提取两个下划线之间内容的实现方法

Excel/Google Sheets 方案

  • 通用兼容公式:
    MID(A1, FIND("_", A1)+1, FIND("_", A1, FIND("_", A1)+1)-FIND("_", A1)-1)
    
    逻辑:先定位第一个下划线位置确定提取起点,再找到第二个下划线位置计算提取长度,最终截取中间内容。
  • 简化公式(Excel 365/Google Sheets):
    INDEX(TEXTSPLIT(A1, "_"), 2)
    
    逻辑:用下划线分割字符串为数组,直接取数组第二个元素。

Python 方案

  • 字符串分割法(简单直接):
    s = "xxxx_Whats your number 23345_xxxxx"
    # 仅含两个下划线时直接取索引1的元素
    result = s.split("_")[1]
    # 存在多个下划线时,只分割前两次避免干扰
    result = s.split("_", 2)[1]
    
  • 正则表达式法(适配复杂场景):
    import re
    s = "xxxx_Whats your number 23345_xxxxx"
    match = re.search(r'_(.*?)_', s)
    if match:
        result = match.group(1)
    
    逻辑:用非贪婪匹配精准捕获第一个与第二个下划线之间的所有内容。

SQL 方案

  • MySQL:
    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(your_column, '_', 2), '_', -1) AS extracted_content
    FROM your_table;
    
    逻辑:先截取到第二个下划线前的内容,再从中截取最后一个下划线后的部分,得到中间内容。
  • PostgreSQL:
    SELECT (STRING_TO_ARRAY(your_column, '_'))[2] AS extracted_content
    FROM your_table;
    
    逻辑:将字符串转为数组,直接取第二个元素。

JavaScript 方案

  • 字符串分割法:
    const s = "xxxx_Whats your number 23345_xxxxx";
    const result = s.split("_")[1];
    
  • 正则表达式法:
    const s = "xxxx_Whats your number 23345_xxxxx";
    const match = s.match(/_([^_]+)_/);
    const result = match ? match[1] : "";
    
    逻辑:匹配下划线之间的非下划线字符,捕获目标内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:51:35