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
相关产品推荐
相关产品推荐

